llvm-tli-checker - TargetLibraryInfo vs library checker¶
:::{program} llvm-tli-checker :::
SYNOPSIS¶
llvm-tli-checker [options] [library-file…]
DESCRIPTION¶
llvm-tli-checker compares TargetLibraryInfo’s opinion of the availability of library functions against the set of functions exported by the specified library files, reporting any disagreements between TLI’s opinion and whether the function is actually present. This is primarily useful for vendors to ensure the TLI for their target is correct, and the compiler will not “optimize” some code sequence into a library call that is not actually available.
EXAMPLE¶
$ llvm-tli-checker --triple x86_64-scei-ps4 example.so
TLI knows 466 symbols, 235 available for 'x86_64-scei-ps4'
Looking for symbols in 'example.so'
Found 235 global function symbols in 'example.so'
Found a grand total of 235 library symbols
<< TLI yes SDK no: '_ZdaPv' aka operator delete[](void*)
>> TLI no SDK yes: '_ZdaPvj' aka operator delete[](void*, unsigned int)
<< Total TLI yes SDK no: 1
>> Total TLI no SDK yes: 1
== Total TLI yes SDK yes: 234
FAIL: LLVM TLI doesn't match SDK libraries.
OPTIONS¶
:::{option} –dump-tli Print “available”/”not available” for each library function, according to TargetLibraryInfo’s information for the specified triple, and exit. This option does not read any input files. :::
:::{option} –help, -h Print a summary of command line options and exit. :::
:::{option} –libdir=
:::{option} –report=
:::{option} –separate Read and report a summary for each library file separately. This can be useful to identify library files that don’t contribute anything that TLI knows about. Implies –report=summary (can be overridden). :::
:::{option} –triple=
:::{option} @<FILE>.
:::
EXIT STATUS¶
llvm-tli-checker returns 0 even if there are mismatches. It returns a non-zero exit code if there is an unrecognized option, or no input files are provided.
