tblgen - 描述到 C++ 代码¶
概要¶
clang-tblgen [选项] [文件名]
lldb-tblgen [选项] [文件名]
llvm-tblgen [选项] [文件名]
mlir-tblgen [选项] [文件名]
描述¶
*-tblgen 是一个程序族,它将目标描述(.td
)文件转换为 C++ 代码和其他输出格式。大多数 LLVM 用户不需要使用此程序。它仅用于编写编译器、调试器和 LLVM 目标后端的部分内容。
*-tblgen 程序的输入和输出细节超出了本简要介绍的范围;请参阅TableGen 概述以获取介绍以及对其他 TableGen 文档的引用。
文件名参数指定 TableGen 处理的目标描述(.td
)文件的名称。
选项¶
通用选项¶
- -help¶
打印命令行选项的描述。
- -help-list¶
以简单的列表格式打印命令行选项的描述。
- -D=macroname¶
指定要定义的宏的名称。该名称已定义,但没有特定值。
- -d=filename¶
指定依赖项文件名的名称。
- -debug¶
启用调试输出。
- -dump-json¶
打印所有记录的 JSON 表示形式,适合进一步的自动化处理。
- -I directory¶
指定在何处查找其他要包含的目标描述文件。
directory
值应为包含目标描述文件的目录的完整或部分路径。
- -null-backend¶
解析源文件并构建记录,但不运行任何后端。这对于计时前端很有用。
- -o filename¶
指定输出文件名。如果
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 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-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 使用此目标*前缀*生成内联函数。
- -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 退出。否则,如果发生错误,它将以非零值退出。