|  | 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 | 
|  | ------- | 
|  |  | 
|  | .. code-block:: 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. |