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。如果存在無法辨識的選項,或未提供任何輸入檔案,則會返回非零的結束代碼。