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 以外の値で終了します。