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 退出。否则,如果发生错误,它将以非零值退出。