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 ディレクトリ

インクルードする他のターゲット記述ファイルを探す場所を指定します。ディレクトリ値は、ターゲット記述ファイルを含むディレクトリへの完全パスまたは部分パスである必要があります。

-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 ビジターを生成します。

-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 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ビルトインsemaチェックを生成します。

-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ビルトインsemaチェックを生成します。

-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 で終了します。エラーが発生した場合は、0 以外の値で終了します。