tblgen - 從描述檔產生 C++ 程式碼¶
概要¶
clang-tblgen [選項] [檔名]
lldb-tblgen [選項] [檔名]
llvm-tblgen [選項] [檔名]
mlir-tblgen [選項] [檔名]
描述¶
*-tblgen 是一系列將目標描述檔(.td
)轉換為 C++ 程式碼和其他輸出格式的程式。大多數 LLVM 使用者不需要使用此程式。它僅用於編寫編譯器、偵錯器和 LLVM 目標後端的某些部分。
*-tblgen 程式的輸入和輸出細節超出了本簡短介紹的範圍;有關簡介和其他 TableGen 文件的參考,請參閱 TableGen 概述。
檔名 參數指定 TableGen 處理的目標描述檔(.td
)的名稱。
選項¶
通用選項¶
- -help¶
列印命令列選項的描述。
- -help-list¶
以簡單列表格式列印命令列選項的描述。
- -D=巨集名稱¶
指定要定義的巨集名稱。名稱已定義,但沒有特定值。
- -d=檔名¶
指定依賴檔案的名稱。
- -debug¶
啟用偵錯輸出。
- -dump-json¶
以 JSON 格式列印所有記錄,適合進一步自動化處理。
- -I 目錄¶
指定在哪裡可以找到其他要包含的目標描述檔。
目錄
值應該是包含目標描述檔的目錄的完整或部分路徑。
- -null-backend¶
解析原始碼檔案並建構記錄,但不執行任何後端。這對於計算前端時間很有用。
- -o 檔案名稱¶
指定輸出檔案名稱。如果
檔案名稱
是-
,則 *-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 visitor。
- -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 sema 支援。
- -gen-arm-neon-test¶
為 Clang 產生 ARM NEON 測試。
- -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 產生最佳化的匹配表版本。
- -warn-on-skipped-patterns¶
讓 -gen-global-isel 解釋為何跳過包含某個模式。
- -gen-global-isel-combiner¶
產生 GlobalISel 組合器。
- -combiners=list¶
讓 -gen-global-isel-combiner 發出指定的組合器。
- -gicombiner-debug-cxxpreds¶
將偵錯註解添加到 -gen-global-isel-combiner 發出的所有 C++ 謂詞
- -gicombiner-stop-after-parse¶
讓 -gen-global-isel-combiner 在解析規則並傾印狀態後停止處理。
- -gen-instr-info¶
產生指令說明。
- -gen-instr-docs¶
產生指令文件。
- -gen-intrinsic-enums¶
產生內建函式列舉。
- -intrinsic-prefix=prefix¶
讓 -gen-intrinsic-enums 使用此目標 *prefix* 產生內建函式。
- -gen-intrinsic-impl¶
產生內建函式資訊。
- -gen-opt-parser-defs¶
產生選項定義。
- -gen-opt-rst¶
產生選項 RST。
- -gen-pseudo-lowering¶
產生虛擬指令降低。
- -gen-register-bank¶
產生暫存器庫描述。
- -gen-register-info¶
產生暫存器和暫存器類別資訊。
- -register-info-debug¶
讓 -gen-register-info 傾印暫存器資訊以進行除錯。
- -gen-searchable-tables¶
產生通用的可搜尋表格。如需詳細說明,請參閱 TableGen 後端。
- -gen-subtarget¶
產生子目標列舉。
- -gen-x86-EVEX2VEX-tables¶
產生 X86 EVEX 到 VEX 壓縮表格。
- -gen-x86-fold-tables¶
產生 X86 折疊表格。
- -long-string-literals¶
發出大型字串表格時,優先使用字串字面值而不是逗號分隔的字元字面值。這可以提高可讀性和編譯時效能,但會讓某些編譯器感到困惑。
- -print-enums¶
列印類別的列舉值。
- -class=classname¶
讓 -print-enums 列印指定類別的列舉清單。
- -print-sets¶
列印展開的集合以測試 DAG 運算式。
mlir-tblgen 選項¶
- -gen-avail-interface-decls¶
產生可用性介面宣告。
- -gen-avail-interface-defs¶
產生操作介面定義。
- -gen-dialect-doc¶
產生方言文件。
- -dialect¶
要產生的方言。
- -gen-directive-decl¶
產生指令的宣告(OpenMP 等)。
- -gen-enum-decls¶
產生列舉工具程式宣告。
- -gen-enum-defs¶
產生列舉工具程式定義。
- -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 內建函數。
- -llvmir-intrinsics-filter¶
只保留記錄名稱中包含指定子字串的內建函數。
- -dialect-opclass-base¶
要發出的方言中操作的基類。
- -gen-op-decls¶
產生操作宣告。
- -gen-op-defs¶
產生操作定義。
- -asmformat-error-is-fatal¶
如果格式解析失敗,則發出致命錯誤。
- -op-exclude-regex¶
要排除的操作名稱的正則表達式(如果為空則不進行過濾)。
- -op-include-regex¶
要包含的操作名稱的正則表達式(如果為空則不進行過濾)。
- -gen-op-doc¶
產生操作說明文件。
- -gen-pass-decls¶
產生操作說明文件。
- -name namestring¶
這組通道的名稱。
- -gen-pass-doc¶
產生通道說明文件。
- -gen-rewriters¶
產生模式重寫器。
- -gen-spirv-avail-impls¶
產生 SPIR-V 操作工具定義。
- -gen-spirv-capability-implication¶
產生工具函數,以返回給定功能的隱含功能。
- -gen-spirv-enum-avail-decls¶
產生 SPIR-V 列舉可用性宣告。
- -gen-spirv-enum-avail-defs¶
產生 SPIR-V 列舉可用性定義。
- -gen-spirv-op-utils¶
產生 SPIR-V 操作工具定義。
- -gen-spirv-serialization¶
產生 SPIR-V (反)序列化工具程式和函式。
- -gen-struct-attr-decls¶
產生結構工具程式宣告。
- -gen-struct-attr-defs¶
產生結構工具程式定義。
- -gen-typedef-decls¶
產生 TypeDef 宣告。
- -gen-typedef-defs¶
產生 TypeDef 定義。
- -typedefs-dialect name¶
為此方言產生類型。
結束狀態¶
如果 *-tblgen 成功,它將會以 0 結束。否則,如果發生錯誤,它將會以非零值結束。