llvm-tli-checker - TargetLibraryInfo とライブラリチェッカー¶
概要¶
llvm-tli-checker [オプション] [ライブラリファイル...]
説明¶
llvm-tli-checker は、TargetLibraryInfo がライブラリ関数の可用性について持つ見解と、指定されたライブラリファイルによってエクスポートされる関数のセットを比較し、TLI の見解と関数が実際に存在するかどうかの間で不一致があった場合に報告します。これは主に、ベンダーがターゲットの TLI が正しいことを確認し、コンパイラが実際には利用できないライブラリ呼び出しにコードシーケンスを「最適化」しないようにするために役立ちます。
例¶
$ 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.
オプション¶
- --dump-tli¶
指定されたトリプルに対する TargetLibraryInfo の情報に従って、各ライブラリ関数に対して「利用可能」/「利用不可」を出力し、終了します。このオプションは、入力ファイルを読み取りません。
- --help, -h¶
コマンドラインオプションの概要を出力し、終了します。
- --libdir=<ディレクトリ>¶
各ライブラリファイルパスの先頭に追加するベースディレクトリ。これは、多数のライブラリファイルがすべて同じディレクトリにある場合や、入力ファイル名のリストが応答ファイルに保持されている場合に便利です。
- --report=<レベル>¶
報告する情報の量。<level> は summary、discrepancy、または full にすることができます。サマリーレポートは、一致するシンボルと不一致のシンボルの数のみを示します。discrepancy は不一致のシンボルをリストし、full は TLI が認識しているすべてのシンボル(一致または不一致)をリストします。デフォルトは discrepancy です。
- --separate¶
各ライブラリファイルに対して個別に要約を読み取り、報告します。これは、TLI が認識している情報を提供しないライブラリファイルを特定するのに役立ちます。–report=summary を暗示します(上書き可能)。
- --triple=<トリプル>¶
TargetLibraryInfo の初期化に使用するトリプル。
- @<FILE>¶
応答ファイル <FILE> からコマンドラインオプションおよび/またはライブラリ名を読み取ります。
終了ステータス¶
llvm-tli-checker は、不一致がある場合でも 0 を返します。認識されないオプションがある場合、または入力ファイルが提供されていない場合は、0 以外の終了コードを返します。