tblgen - C++ 程式碼描述¶
概要¶
clang-tblgen [選項] [檔案名稱]
lldb-tblgen [選項] [檔案名稱]
llvm-tblgen [選項] [檔案名稱]
mlir-tblgen [選項] [檔案名稱]
描述¶
*-tblgen 是一系列程式,可將目標描述 (.td
) 檔案翻譯成 C++ 程式碼和其他輸出格式。大多數 LLVM 使用者不需要使用此程式。它僅用於編寫編譯器、偵錯器和 LLVM 目標後端的部分。
*-tblgen 程式的輸入和輸出詳細資訊,超出本簡短介紹的範圍;請參閱 TableGen 概述 以取得簡介和更多 TableGen 文件參考資料。
filename 引數指定 TableGen 處理的目標描述 (.td
) 檔案的名稱。
選項¶
通用選項¶
- -help¶
列印命令列選項的描述。
- -help-list¶
以簡單列表格式列印命令列選項的描述。
- -D=macroname¶
指定要定義的巨集名稱。名稱已定義,但沒有特定值。
- -d=filename¶
指定相依性檔案名稱。
- -debug¶
啟用偵錯輸出。
- -dump-json¶
列印所有記錄的 JSON 表示,適用於進一步的自動化處理。
- -I 目錄¶
指定在哪裡可以找到其他目標描述檔案以供包含。
directory
值應為包含目標描述檔案的目錄的完整或部分路徑。
- -null-backend¶
剖析原始檔並建立記錄,但不執行任何後端。這對於計時前端很有用。
- -o 檔案名稱¶
指定輸出檔案名稱。如果
filename
是-
,則 *-tblgen 會將其輸出傳送到標準輸出。
- -print-records¶
將所有類別和記錄列印到標準輸出(預設後端選項)。
- -print-detailed-records¶
將所有全域變數、類別和記錄的詳細報告列印到標準輸出。
- -stats¶
列印包含後端收集之任何統計資訊的報告。
- -time-phases¶
計時剖析器和後端階段,並列印報告。
- -version¶
顯示程式的版本號碼。
- -write-if-changed¶
僅當輸出檔案是新的或已變更時才寫入。
clang-tblgen 選項¶
- -gen-clang-attr-classes¶
產生 Clang 屬性類別。
- -gen-clang-attr-parser-string-switches¶
產生所有與剖析器相關的屬性字串交換器。
- -gen-clang-attr-subject-match-rules-parser-string-switches¶
產生所有與剖析器相關的屬性主體比對規則字串交換器。
- -gen-clang-attr-impl¶
產生 Clang 屬性實作。
- -gen-clang-attr-list¶
產生 Clang 屬性列表。
- -gen-clang-attr-subject-match-rule-list¶
產生 Clang 屬性主體比對規則列表。
- -gen-clang-attr-pch-read¶
產生 Clang PCH 屬性讀取器。
- -gen-clang-attr-pch-write¶
產生 Clang PCH 屬性寫入器。
- -gen-clang-attr-has-attribute-impl¶
產生 Clang 屬性拼字列表。
- -gen-clang-attr-spelling-index¶
產生 Clang 屬性拼字索引。
- -gen-clang-attr-ast-visitor¶
產生 Clang 屬性的遞迴 AST 訪問器。
- -gen-clang-attr-template-instantiate¶
產生 Clang 範本實例化程式碼。
- -gen-clang-attr-parsed-attr-list¶
產生 Clang 剖析的屬性列表。
- -gen-clang-attr-parsed-attr-impl¶
產生 Clang 剖析的屬性輔助程式。
- -gen-clang-attr-parsed-attr-kinds¶
產生 Clang 剖析的屬性種類。
- -gen-clang-attr-text-node-dump¶
產生 Clang 屬性文字節點傾印器。
- -gen-clang-attr-node-traverse¶
產生 Clang 屬性遍歷器。
- -gen-clang-diags-defs¶
產生 Clang 診斷定義。
- -clang-component 組件¶
僅使用來自指定組件的警告。
- -gen-clang-diag-groups¶
產生 Clang 診斷群組。
- -gen-clang-diags-index-name¶
產生 Clang 診斷名稱索引。
- -gen-clang-basic-reader¶
產生 Clang BasicReader 類別。
- -gen-clang-basic-writer¶
產生 Clang BasicWriter 類別。
- -gen-clang-comment-nodes¶
產生 Clang AST 註解節點。
- -gen-clang-decl-nodes¶
產生 Clang AST 宣告節點。
- -gen-clang-stmt-nodes¶
產生 Clang AST 陳述式節點。
- -gen-clang-type-nodes¶
產生 Clang AST 類型節點。
- -gen-clang-type-reader¶
產生 Clang AbstractTypeReader 類別。
- -gen-clang-type-writer¶
產生 Clang AbstractTypeWriter 類別。
- -gen-clang-opcodes¶
產生 Clang constexpr 直譯器運算碼。
- -gen-clang-sa-checkers¶
產生 Clang 靜態分析器檢查器。
- -gen-clang-comment-html-tags¶
為文件中註解中使用的 HTML 標籤名稱產生有效率的比對器。
- -gen-clang-comment-html-tags-properties¶
為 HTML 標籤屬性產生有效率的比對器。
- -gen-clang-comment-html-named-character-references¶
產生將具名字元參考轉換為 UTF-8 序列的函式。
- -gen-clang-comment-command-info¶
為文件中註解中使用的命令產生命令屬性。
- -gen-clang-comment-command-list¶
產生文件中註解中使用的命令列表。
- -gen-clang-opencl-builtins¶
產生 OpenCL 內建宣告處理常式。
- -gen-arm-neon¶
為 Clang 產生
arm_neon.h
。
- -gen-arm-fp16¶
為 Clang 產生
arm_fp16.h
。
- -gen-arm-bf16¶
為 Clang 產生
arm_bf16.h
。
- -gen-arm-neon-sema¶
為 Clang 產生 ARM NEON 語意支援。
- -gen-arm-neon-test¶
為 Clang 產生 ARM NEON 測試。
- -gen-arm-immcheck-types¶
為 Clang 產生
arm_immcheck_types.inc
。
- -gen-arm-sve-header¶
為 Clang 產生
arm_sve.h
。
- -gen-arm-sve-builtins¶
為 Clang 產生
arm_sve_builtins.inc
。
- -gen-arm-sve-builtin-codegen¶
為 Clang 產生
arm_sve_builtin_cg_map.inc
。
- -gen-arm-sve-typeflags¶
為 Clang 產生
arm_sve_typeflags.inc
。
- -gen-arm-sve-sema-rangechecks¶
為 Clang 產生
arm_sve_sema_rangechecks.inc
。
- -gen-arm-mve-header¶
為 Clang 產生
arm_mve.h
。
- -gen-arm-mve-builtin-def¶
為 Clang 產生 ARM MVE 內建定義。
- -gen-arm-mve-builtin-sema¶
為 Clang 產生 ARM MVE 內建語意檢查。
- -gen-arm-mve-builtin-codegen¶
為 Clang 產生 ARM MVE 內建程式碼產生器。
- -gen-arm-mve-builtin-aliases¶
為 Clang 產生有效的 ARM MVE 內建別名列表。
- -gen-arm-cde-header¶
為 Clang 產生
arm_cde.h
。
- -gen-arm-cde-builtin-def¶
為 Clang 產生 ARM CDE 內建定義。
- -gen-arm-cde-builtin-sema¶
為 Clang 產生 ARM CDE 內建語意檢查。
- -gen-arm-cde-builtin-codegen¶
為 Clang 產生 ARM CDE 內建程式碼產生器。
- -gen-arm-cde-builtin-aliases¶
為 Clang 產生有效的 ARM CDE 內建別名列表。
- -gen-riscv-vector-header¶
為 Clang 產生
riscv_vector.h
。
- -gen-riscv-vector-builtins¶
為 Clang 產生
riscv_vector_builtins.inc
。
- -gen-riscv-vector-builtin-codegen¶
為 Clang 產生
riscv_vector_builtin_cg.inc
。
- -gen-riscv-sifive-vector-builtins¶
為 Clang 產生
riscv_sifive_vector_builtins.inc
。
- -gen-riscv-sifive-vector-builtin-codegen¶
為 Clang 產生
riscv_sifive_vector_builtin_cg.inc
。
- -gen-attr-docs¶
產生屬性文件。
- -gen-diag-docs¶
產生診斷文件。
- -gen-opt-docs¶
產生選項文件。
- -gen-clang-data-collectors¶
為 AST 節點產生資料收集器。
- -gen-clang-test-pragma-attribute-supported-attributes¶
產生
#pragma
Clang 屬性為了測試目的所支援的屬性列表。
lldb-tblgen 選項¶
- gen-lldb-option-defs¶
產生 lldb OptionDefinition 值。
- gen-lldb-property-defs¶
產生 lldb PropertyDefinition 值。
- gen-lldb-property-enum-defs¶
產生 lldb PropertyDefinition 列舉值。
llvm-tblgen 選項¶
- -gen-asm-matcher¶
產生組譯指令比對器。
- -match-prefix=prefix¶
使 -gen-asm-matcher 僅比對具有給定 prefix 的指令。
- -gen-asm-parser¶
產生組譯指令剖析器。
- -asmparsernum=n¶
使 -gen-asm-parser 發出組譯剖析器編號 n。
- -gen-asm-writer¶
產生組譯寫入器。
- -asmwriternum=n¶
使 -gen-asm-writer 發出組譯寫入器編號 n。
- -gen-attrs¶
產生屬性。
- -gen-automata¶
產生通用自動機。
- -gen-callingconv¶
產生呼叫慣例描述。
- -gen-compress-inst-emitter¶
產生 RISC-V 壓縮指令。
- -gen-ctags¶
產生 ctags 相容索引。
- -gen-dag-isel¶
產生 DAG(有向無環圖)指令選擇器。
- -instrument-coverage¶
使 -gen-dag-isel 產生表格,以協助識別比對的模式。
- -omit-comments¶
使 -gen-dag-isel 省略註解。預設值為 false。
- -gen-dfa-packetizer¶
為 VLIW 目標產生 DFA 封包化器。
- -gen-directive-decl¶
產生指令相關的宣告程式碼(標頭檔)。
- -gen-directive-gen¶
產生指令相關的實作程式碼部分。
- -gen-directive-impl¶
產生指令相關的實作程式碼。
- -gen-disassembler¶
產生反組譯器。
- -gen-emitter¶
產生機器碼發射器。
- -gen-exegesis¶
產生 llvm-exegesis 表格。
- -gen-fast-isel¶
產生「快速」指令選擇器。
- -gen-global-isel¶
產生 GlobalISel 選擇器。
- -gisel-coverage-file=filename¶
指定從哪個檔案檢索涵蓋率資訊。
- -instrument-gisel-coverage¶
使 -gen-global-isel 產生涵蓋率檢測。
- -optimize-match-table¶
使 -gen-global-isel 產生 match table 的最佳化版本。
- -warn-on-skipped-patterns¶
使 -gen-global-isel 解釋為何略過某個 pattern 而不納入。
- -gen-global-isel-combiner¶
產生 GlobalISel combiner。
- -combiners=list¶
使 -gen-global-isel-combiner 輸出指定的 combiners。
- -gicombiner-debug-cxxpreds¶
為 -gen-global-isel-combiner 輸出的所有 C++ predicates 加入除錯註解。
- -gicombiner-stop-after-parse¶
使 -gen-global-isel-combiner 在剖析規則後停止處理並傾印狀態。
- -gen-instr-info¶
產生指令描述。
- -gen-instr-docs¶
產生指令文件。
- -gen-intrinsic-enums¶
產生 intrinsic 列舉。
- -intrinsic-prefix=prefix¶
使 -gen-intrinsic-enums 產生帶有此目標 prefix 的 intrinsics。
- -gen-intrinsic-impl¶
產生 intrinsic 資訊。
- -gen-opt-parser-defs¶
產生選項定義。
- -gen-opt-rst¶
產生選項 RST。
- -gen-pseudo-lowering¶
產生偽指令 lowering。
- -gen-register-bank¶
產生暫存器組描述。
- -gen-register-info¶
產生暫存器和暫存器類別資訊。
- -register-info-debug¶
使 -gen-register-info 傾印暫存器資訊以進行除錯。
- -gen-searchable-tables¶
產生通用可搜尋表格。詳情請參閱 TableGen BackEnds。
- -gen-subtarget¶
產生子目標列舉。
- -gen-x86-EVEX2VEX-tables¶
產生 X86 EVEX 至 VEX 壓縮表格。
- -gen-x86-fold-tables¶
產生 X86 fold 表格。
- -long-string-literals¶
當輸出大型字串表格時,偏好使用字串字面值而非逗號分隔的字元字面值。這可以提升可讀性和編譯時期效能,但會讓某些編譯器不悅。
- -print-enums¶
印出一個類別的列舉值。
- -class=classname¶
使 -print-enums 印出指定類別的列舉清單。
- -print-sets¶
印出展開的 sets 以測試 DAG exprs。
mlir-tblgen 選項¶
- -gen-avail-interface-decls¶
產生可用性介面宣告。
- -gen-avail-interface-defs¶
產生 op 介面定義。
- -gen-dialect-doc¶
產生 dialect 文件。
- -dialect¶
要產生的 dialect。
- -gen-directive-decl¶
為 directives (OpenMP 等) 產生宣告。
- -gen-enum-decls¶
產生 enum 工具程式宣告。
- -gen-enum-defs¶
產生 enum 工具程式定義。
- -gen-enum-from-llvmir-conversions¶
從 LLVM IR 產生 EnumAttrs 的轉換。
- -gen-enum-to-llvmir-conversions¶
產生 EnumAttrs 到 LLVM IR 的轉換。
- -gen-llvmir-conversions¶
產生 LLVM IR 轉換。
- -gen-llvmir-intrinsics¶
產生 LLVM IR intrinsics。
- -llvmir-intrinsics-filter¶
僅保留記錄名稱中含有指定子字串的 intrinsics。
- -dialect-opclass-base¶
我們要輸出的 dialect 中 ops 的基礎類別。
- -gen-op-decls¶
產生 operation 宣告。
- -gen-op-defs¶
產生 operation 定義。
- -asmformat-error-is-fatal¶
若格式剖析失敗,則發出嚴重錯誤。
- -op-exclude-regex¶
要排除的 ops 名稱之正規表示式 (若為空則不篩選)。
- -op-include-regex¶
要包含的 ops 名稱之正規表示式 (若為空則不篩選)。
- -gen-op-doc¶
產生 operation 文件。
- -gen-pass-decls¶
產生 operation 文件。
- -name namestring¶
這組 passes 的名稱。
- -gen-pass-doc¶
產生 pass 文件。
- -gen-rewriters¶
產生 pattern rewriters。
- -gen-spirv-avail-impls¶
產生 SPIR-V operation 工具程式定義。
- -gen-spirv-capability-implication¶
產生工具函式,以針對給定的 capability 回傳隱含的 capabilities。
- -gen-spirv-enum-avail-decls¶
產生 SPIR-V enum 可用性宣告。
- -gen-spirv-enum-avail-defs¶
產生 SPIR-V enum 可用性定義。
- -gen-spirv-op-utils¶
產生 SPIR-V operation 工具程式定義。
- -gen-spirv-serialization¶
產生 SPIR-V (反)序列化工具程式和函式。
- -gen-struct-attr-decls¶
產生 struct 工具程式宣告。
- -gen-struct-attr-defs¶
產生 struct 工具程式定義。
- -gen-typedef-decls¶
產生 TypeDef 宣告。
- -gen-typedef-defs¶
產生 TypeDef 定義。
- -typedefs-dialect name¶
為此 dialect 產生 types。
結束狀態¶
如果 *-tblgen 成功,它會以 0 結束。否則,如果發生錯誤,它會以非零值結束。