llvm-tli-checker - TargetLibraryInfo 與 library checker 對照檢查¶
概要¶
llvm-tli-checker [options] [library-file…]
描述¶
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 對於指定 triple 的資訊,印出每個程式庫函式的「可用」/「不可用」狀態,然後結束。此選項不讀取任何輸入檔案。
- --help, -h¶
印出命令列選項的摘要並結束。
- --libdir=<directory>¶
要前置於每個程式庫檔案路徑的基本目錄。當有許多程式庫檔案都位於同一個目錄中,或輸入檔名列表保存在回應檔中時,這很方便。
- --report=<level>¶
要報告的資訊量。
可以是 summary、discrepancy 或 full。summary 報告僅提供符合和不符合符號的計數;discrepancy 列出不符合的符號;而 full 列出 TLI 已知的所有符號,無論符合或不符合。預設值為 discrepancy。
- --separate¶
分別讀取並報告每個程式庫檔案的摘要。這對於識別不貢獻 TLI 所知任何內容的程式庫檔案很有用。暗示 --report=summary (可以被覆蓋)。
- --triple=<triple>¶
用於初始化 TargetLibraryInfo 的 triple。
- @<FILE>¶
從回應檔 <FILE> 讀取命令列選項和/或程式庫名稱。
結束狀態¶
llvm-tli-checker 即使存在不符之處,仍返回 0。如果存在無法辨識的選項,或未提供任何輸入檔案,則會返回非零的結束代碼。