LLVM-TLI-CHECKER(1)

🌸 NAME 🌸

okay bestie, welcome to the llvm-tli-checker page in the LLVM manual πŸ’– the header literally says LLVM-TLI-CHECKER(1), and it's the TargetLibraryInfo vs library checker. yes, that's the whole gig.

πŸ¦‹ SYNOPSIS πŸ¦‹

llvm-tli-checker [options] [library-file...]

πŸ’… DESCRIPTION πŸ’…

so llvm-tli-checker compares TargetLibraryInfo's opinion about whether library functions are available against the actual set of functions exported by the library files you give it. it reports every disagreement between TLI's opinion and whether the function is actually present 😭

this is mainly for vendors, fr fr β€” it helps them make sure the TLI for their target is correct, so the compiler won't "optimize" some code sequence into a library call that is not actually available. periodt.

✨ 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 πŸŽ€

  • --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 🫢
  • --help, -h β€” print a summary of command line options and exit.
  • --libdir=<directory> β€” a base directory to prepend to each library file path. it's 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 πŸ’–
  • --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.
  • --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).
  • --triple=<triple> β€” the triple to use for initializing TargetLibraryInfo.
  • @<FILE> β€” read command-line options and/or library names from response file <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. that's the vibe check, and it can fail πŸ’€

🌈 AUTHOR 🌈

Maintained by the LLVM Team (https://llvm.org/).

2003-2023, LLVM Project.


mwah πŸ’‹ this iconic little page is from LLVM version 17, dated 2023-12-01 β€” catch u later, bestie 🫢✨

πŸ“¦ where this page comes from