xref: /llvm-project/llvm/docs/CommandGuide/llvm-tli-checker.rst (revision 38be8f4057c1bf19fd02d08d6116e28983a49d8d)
1llvm-tli-checker - TargetLibraryInfo vs library checker
2=======================================================
3
4.. program:: llvm-tli-checker
5
6SYNOPSIS
7--------
8
9:program:`llvm-tli-checker` [*options*] [*library-file...*]
10
11DESCRIPTION
12-----------
13
14:program:`llvm-tli-checker` compares TargetLibraryInfo's opinion of the
15availability of library functions against the set of functions exported
16by the specified library files, reporting any disagreements between TLI's
17opinion and whether the function is actually present. This is primarily
18useful for vendors to ensure the TLI for their target is correct, and
19the compiler will not "optimize" some code sequence into a library call
20that is not actually available.
21
22EXAMPLE
23-------
24
25.. code-block:: console
26
27  $ llvm-tli-checker --triple x86_64-scei-ps4 example.so
28  TLI knows 466 symbols, 235 available for 'x86_64-scei-ps4'
29
30  Looking for symbols in 'example.so'
31  Found 235 global function symbols in 'example.so'
32  Found a grand total of 235 library symbols
33  << TLI yes SDK no:  '_ZdaPv' aka operator delete[](void*)
34  >> TLI no  SDK yes: '_ZdaPvj' aka operator delete[](void*, unsigned int)
35  << Total TLI yes SDK no:  1
36  >> Total TLI no  SDK yes: 1
37  == Total TLI yes SDK yes: 234
38  FAIL: LLVM TLI doesn't match SDK libraries.
39
40OPTIONS
41-------
42
43.. option:: --dump-tli
44
45  Print "available"/"not available" for each library function, according to
46  TargetLibraryInfo's information for the specified triple, and exit. This
47  option does not read any input files.
48
49.. option:: --help, -h
50
51  Print a summary of command line options and exit.
52
53.. option:: --libdir=<directory>
54
55  A base directory to prepend to each library file path. This is handy
56  when there are a number of library files all in the same directory, or
57  a list of input filenames are kept in a response file.
58
59.. option:: --report=<level>
60
61  The amount of information to report.  <level> can be summary, discrepancy,
62  or full. A summary report gives only the count of matching and mis-matching
63  symbols; discrepancy lists the mis-matching symbols; and full lists all
64  symbols known to TLI, matching or mis-matching. The default is discrepancy.
65
66.. option:: --separate
67
68  Read and report a summary for each library file separately.  This can be
69  useful to identify library files that don't contribute anything that TLI
70  knows about. Implies --report=summary (can be overridden).
71
72.. option:: --triple=<triple>
73
74  The triple to use for initializing TargetLibraryInfo.
75
76.. option:: @<FILE>
77
78 Read command-line options and/or library names from response file `<FILE>`.
79
80EXIT STATUS
81-----------
82
83:program:`llvm-tli-checker` returns 0 even if there are mismatches. It returns a
84non-zero exit code if there is an unrecognized option, or no input files are
85provided.
86