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 結束。否則,如果發生錯誤,它會以非零值結束。