| # llvm-tli-checker - TargetLibraryInfo vs library checker | |
| :::{program} llvm-tli-checker | |
| ::: | |
| ## SYNOPSIS | |
| {program}`llvm-tli-checker` \[*options*\] \[*library-file...*\] | |
| ## DESCRIPTION | |
| {program}`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 | |
| ```console | |
| $ 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=<directory> | |
| A base directory to prepend to each library file path. This is handy | |
| when there are a number of library files all in the same directory, or | |
| a list of input filenames are kept in a response file. | |
| ::: | |
| :::{option} --report=<level> | |
| The amount of information to report. \<level> can be summary, discrepancy, | |
| or full. A summary report gives only the count of matching and mis-matching | |
| symbols; discrepancy lists the mis-matching symbols; and full lists all | |
| symbols known to TLI, matching or mis-matching. The default is discrepancy. | |
| ::: | |
| :::{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=<triple> | |
| The triple to use for initializing TargetLibraryInfo. | |
| ::: | |
| :::{option} @<FILE> | |
| Read command-line options and/or library names from response file `<FILE>`. | |
| ::: | |
| ## EXIT STATUS | |
| {program}`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. | |