| tblgen - Description to C++ Code |
| ================================ |
| |
| .. program:: tblgen |
| |
| SYNOPSIS |
| -------- |
| |
| :program:`clang-tblgen` [*options*] [*filename*] |
| |
| :program:`lldb-tblgen` [*options*] [*filename*] |
| |
| :program:`llvm-tblgen` [*options*] [*filename*] |
| |
| :program:`mlir-tblgen` [*options*] [*filename*] |
| |
| DESCRIPTION |
| ----------- |
| |
| :program:`*-tblgen` is a family of programs that translates target |
| description (``.td``) files into C++ code and other output formats. Most |
| users of LLVM will not need to use this program. It is used only for |
| writing parts of the compiler, debugger, and LLVM target backends. |
| |
| The details of the input and output of the :program:`*-tblgen` programs is |
| beyond the scope of this short introduction; please see the :doc:`TableGen |
| Overview <../TableGen/index>` for an introduction and for references to |
| additional TableGen documents. |
| |
| The *filename* argument specifies the name of the Target Description (``.td``) |
| file that TableGen processes. |
| |
| OPTIONS |
| ------- |
| |
| General Options |
| ~~~~~~~~~~~~~~~ |
| |
| .. option:: -help |
| |
| Print a description of the command line options. |
| |
| .. option:: -help-list |
| |
| Print a description of the command line options in a simple list format. |
| |
| .. option:: -D=macroname |
| |
| Specify the name of a macro to be defined. The name is defined, but it |
| has no particular value. |
| |
| .. option:: -d=filename |
| |
| Specify the name of the dependency filename. |
| |
| .. option:: -debug |
| |
| Enable debug output. |
| |
| .. option:: -dump-json |
| |
| Print a JSON representation of all records, suitable for further |
| automated processing. |
| |
| .. option:: -I directory |
| |
| Specify where to find other target description files for inclusion. The |
| ``directory`` value should be a full or partial path to a directory that |
| contains target description files. |
| |
| .. option:: -null-backend |
| |
| Parse the source files and build the records, but do not run any |
| backend. This is useful for timing the frontend. |
| |
| .. option:: -o filename |
| |
| Specify the output file name. If ``filename`` is ``-``, then |
| :program:`*-tblgen` sends its output to standard output. |
| |
| .. option:: -print-records |
| |
| Print all classes and records to standard output (default backend option). |
| |
| .. option:: -print-detailed-records |
| |
| Print a detailed report of all global variables, classes, and records |
| to standard output. |
| |
| .. option:: -stats |
| |
| Print a report with any statistics collected by the backend. |
| |
| .. option:: -time-phases |
| |
| Time the parser and backend phases and print a report. |
| |
| .. option:: -version |
| |
| Show the version number of the program. |
| |
| .. option:: -write-if-changed |
| |
| Write the output file only if it is new or has changed. |
| |
| |
| clang-tblgen Options |
| ~~~~~~~~~~~~~~~~~~~~ |
| |
| .. option:: -gen-clang-attr-classes |
| |
| Generate Clang attribute clases. |
| |
| .. option:: -gen-clang-attr-parser-string-switches |
| |
| Generate all parser-related attribute string switches. |
| |
| .. option:: -gen-clang-attr-subject-match-rules-parser-string-switches |
| |
| Generate all parser-related attribute subject match rule string switches. |
| |
| .. option:: -gen-clang-attr-impl |
| |
| Generate Clang attribute implementations. |
| |
| .. option:: -gen-clang-attr-list" |
| |
| Generate a Clang attribute list. |
| |
| .. option:: -gen-clang-attr-subject-match-rule-list |
| |
| Generate a Clang attribute subject match rule list. |
| |
| .. option:: -gen-clang-attr-pch-read |
| |
| Generate Clang PCH attribute reader. |
| |
| .. option:: -gen-clang-attr-pch-write |
| |
| Generate Clang PCH attribute writer. |
| |
| .. option:: -gen-clang-attr-has-attribute-impl |
| |
| Generate a Clang attribute spelling list. |
| |
| .. option:: -gen-clang-attr-spelling-index |
| |
| Generate a Clang attribute spelling index. |
| |
| .. option:: -gen-clang-attr-ast-visitor |
| |
| Generate a recursive AST visitor for Clang attributes. |
| |
| .. option:: -gen-clang-attr-template-instantiate |
| |
| Generate a Clang template instantiate code. |
| |
| .. option:: -gen-clang-attr-parsed-attr-list |
| |
| Generate a Clang parsed attribute list. |
| |
| .. option:: -gen-clang-attr-parsed-attr-impl |
| |
| Generate the Clang parsed attribute helpers. |
| |
| .. option:: -gen-clang-attr-parsed-attr-kinds |
| |
| Generate a Clang parsed attribute kinds. |
| |
| .. option:: -gen-clang-attr-text-node-dump |
| |
| Generate Clang attribute text node dumper. |
| |
| .. option:: -gen-clang-attr-node-traverse |
| |
| Generate Clang attribute traverser. |
| |
| .. option:: -gen-clang-diags-defs |
| |
| Generate Clang diagnostics definitions. |
| |
| .. option:: -clang-component component |
| |
| Only use warnings from specified component. |
| |
| .. option:: -gen-clang-diag-groups |
| |
| Generate Clang diagnostic groups. |
| |
| .. option:: -gen-clang-diags-index-name |
| |
| Generate Clang diagnostic name index. |
| |
| .. option:: -gen-clang-basic-reader |
| |
| Generate Clang BasicReader classes. |
| |
| .. option:: -gen-clang-basic-writer |
| |
| Generate Clang BasicWriter classes. |
| |
| .. option:: -gen-clang-comment-nodes |
| |
| Generate Clang AST comment nodes. |
| |
| .. option:: -gen-clang-decl-nodes |
| |
| Generate Clang AST declaration nodes. |
| |
| .. option:: -gen-clang-stmt-nodes |
| |
| Generate Clang AST statement nodes. |
| |
| .. option:: -gen-clang-type-nodes |
| |
| Generate Clang AST type nodes. |
| |
| .. option:: -gen-clang-type-reader |
| |
| Generate Clang AbstractTypeReader class. |
| |
| .. option:: -gen-clang-type-writer |
| |
| Generate Clang AbstractTypeWriter class. |
| |
| .. option:: -gen-clang-opcodes |
| |
| Generate Clang constexpr interpreter opcodes. |
| |
| .. option:: -gen-clang-sa-checkers |
| |
| Generate Clang static analyzer checkers. |
| |
| .. option:: -gen-clang-comment-html-tags |
| |
| Generate efficient matchers for HTML tag names that are used in |
| documentation comments. |
| |
| .. option:: -gen-clang-comment-html-tags-properties |
| |
| Generate efficient matchers for HTML tag properties. |
| |
| .. option:: -gen-clang-comment-html-named-character-references |
| |
| Generate function to translate named character references to UTF-8 sequences. |
| |
| .. option:: -gen-clang-comment-command-info |
| |
| Generate command properties for commands that are used in documentation comments. |
| |
| .. option:: -gen-clang-comment-command-list |
| |
| Generate list of commands that are used in documentation comments. |
| |
| .. option:: -gen-clang-opencl-builtins |
| |
| Generate OpenCL builtin declaration handlers. |
| |
| .. option:: -gen-arm-neon |
| |
| Generate ``arm_neon.h`` for Clang. |
| |
| .. option:: -gen-arm-fp16 |
| |
| Generate ``arm_fp16.h`` for Clang. |
| |
| .. option:: -gen-arm-bf16 |
| |
| Generate ``arm_bf16.h`` for Clang. |
| |
| .. option:: -gen-arm-neon-sema |
| |
| Generate ARM NEON sema support for Clang. |
| |
| .. option:: -gen-arm-neon-test |
| |
| Generate ARM NEON tests for Clang. |
| |
| .. option:: -gen-arm-sve-header |
| |
| Generate ``arm_sve.h`` for Clang. |
| |
| .. option:: -gen-arm-sve-builtins |
| |
| Generate ``arm_sve_builtins.inc`` for Clang. |
| |
| .. option:: -gen-arm-sve-builtin-codegen |
| |
| Generate ``arm_sve_builtin_cg_map.inc`` for Clang. |
| |
| .. option:: -gen-arm-sve-typeflags |
| |
| Generate ``arm_sve_typeflags.inc`` for Clang. |
| |
| .. option:: -gen-arm-sve-sema-rangechecks |
| |
| Generate ``arm_sve_sema_rangechecks.inc`` for Clang. |
| |
| .. option:: -gen-arm-mve-header |
| |
| Generate ``arm_mve.h`` for Clang. |
| |
| .. option:: -gen-arm-mve-builtin-def |
| |
| Generate ARM MVE builtin definitions for Clang. |
| |
| .. option:: -gen-arm-mve-builtin-sema |
| |
| Generate ARM MVE builtin sema checks for Clang. |
| |
| .. option:: -gen-arm-mve-builtin-codegen |
| |
| Generate ARM MVE builtin code-generator for Clang. |
| |
| .. option:: -gen-arm-mve-builtin-aliases |
| |
| Generate list of valid ARM MVE builtin aliases for Clang. |
| |
| .. option:: -gen-arm-cde-header |
| |
| Generate ``arm_cde.h`` for Clang. |
| |
| .. option:: -gen-arm-cde-builtin-def |
| |
| Generate ARM CDE builtin definitions for Clang. |
| |
| .. option:: -gen-arm-cde-builtin-sema |
| |
| Generate ARM CDE builtin sema checks for Clang. |
| |
| .. option:: -gen-arm-cde-builtin-codegen |
| |
| Generate ARM CDE builtin code-generator for Clang. |
| |
| .. option:: -gen-arm-cde-builtin-aliases |
| |
| Generate list of valid ARM CDE builtin aliases for Clang. |
| |
| .. option:: -gen-riscv-vector-header |
| |
| Generate ``riscv_vector.h`` for Clang. |
| |
| .. option:: -gen-riscv-vector-builtins |
| |
| Generate ``riscv_vector_builtins.inc`` for Clang. |
| |
| .. option:: -gen-riscv-vector-builtin-codegen |
| |
| Generate ``riscv_vector_builtin_cg.inc`` for Clang. |
| |
| .. option:: -gen-attr-docs |
| |
| Generate attribute documentation. |
| |
| .. option:: -gen-diag-docs |
| |
| Generate diagnostic documentation. |
| |
| .. option:: -gen-opt-docs |
| |
| Generate option documentation. |
| |
| .. option:: -gen-clang-data-collectors |
| |
| Generate data collectors for AST nodes. |
| |
| .. option:: -gen-clang-test-pragma-attribute-supported-attributes |
| |
| Generate a list of attributes supported by ``#pragma`` Clang attribute for |
| testing purposes. |
| |
| |
| lldb-tblgen Options |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| .. option:: gen-lldb-option-defs |
| |
| Generate lldb OptionDefinition values. |
| |
| .. option:: gen-lldb-property-defs |
| |
| Generate lldb PropertyDefinition values. |
| |
| .. option:: gen-lldb-property-enum-defs |
| |
| Generate lldb PropertyDefinition enum values. |
| |
| |
| llvm-tblgen Options |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| .. option:: -gen-asm-matcher |
| |
| Generate assembly instruction matcher. |
| |
| .. option:: -match-prefix=prefix |
| |
| Make -gen-asm-matcher match only instructions with the given *prefix*. |
| |
| .. option:: -gen-asm-parser |
| |
| Generate assembly instruction parser. |
| |
| .. option:: -asmparsernum=n |
| |
| Make -gen-asm-parser emit assembly parser number *n*. |
| |
| .. option:: -gen-asm-writer |
| |
| Generate assembly writer. |
| |
| .. option:: -asmwriternum=n |
| |
| Make -gen-asm-writer emit assembly writer number *n*. |
| |
| .. option:: -gen-attrs |
| |
| Generate attributes. |
| |
| .. option:: -gen-automata |
| |
| Generate generic automata. |
| |
| .. option:: -gen-callingconv |
| |
| Generate calling convention descriptions. |
| |
| .. option:: -gen-compress-inst-emitter |
| |
| Generate RISC-V compressed instructions. |
| |
| .. option:: -gen-ctags |
| |
| Generate ctags-compatible index. |
| |
| .. option:: -gen-dag-isel |
| |
| Generate a DAG (directed acyclic graph) instruction selector. |
| |
| .. option:: -instrument-coverage |
| |
| Make -gen-dag-isel generate tables to help identify the patterns matched. |
| |
| .. option:: -omit-comments |
| |
| Make -gen-dag-isel omit comments. The default is false. |
| |
| .. option:: -gen-dfa-packetizer |
| |
| Generate DFA Packetizer for VLIW targets. |
| |
| .. option:: -gen-directive-decl |
| |
| Generate directive related declaration code (header file). |
| |
| .. option:: -gen-directive-gen |
| |
| Generate directive related implementation code part. |
| |
| .. option:: -gen-directive-impl |
| |
| Generate directive related implementation code. |
| |
| .. option:: -gen-disassembler |
| |
| Generate disassembler. |
| |
| .. option:: -gen-emitter |
| |
| Generate machine code emitter. |
| |
| .. option:: -gen-exegesis |
| |
| Generate llvm-exegesis tables. |
| |
| .. option:: -gen-fast-isel |
| |
| Generate a "fast" instruction selector. |
| |
| .. option:: -gen-global-isel |
| |
| Generate GlobalISel selector. |
| |
| .. option:: -gisel-coverage-file=filename |
| |
| Specify the file from which to retrieve coverage information. |
| |
| .. option:: -instrument-gisel-coverage |
| |
| Make -gen-global-isel generate coverage instrumentation. |
| |
| .. option:: -optimize-match-table |
| |
| Make -gen-global-isel generate an optimized version of the match table. |
| |
| .. option:: -warn-on-skipped-patterns |
| |
| Make -gen-global-isel explain why a pattern was skipped for inclusion. |
| |
| .. option:: -gen-global-isel-combiner |
| |
| Generate GlobalISel combiner. |
| |
| .. option:: -combiners=list |
| |
| Make -gen-global-isel-combiner emit the specified combiners. |
| |
| .. option:: -gicombiner-show-expansions |
| |
| Make -gen-global-isel-combiner use C++ comments to indicate occurrences |
| of code expansion. |
| |
| .. option:: -gicombiner-stop-after-build |
| |
| Make -gen-global-isel-combiner stop processing after building the match tree. |
| |
| .. option:: -gicombiner-stop-after-parse |
| |
| Make -gen-global-isel-combiner stop processing after parsing rules |
| and dump state. |
| |
| .. option:: -gen-instr-info |
| |
| Generate instruction descriptions. |
| |
| .. option:: -gen-instr-docs |
| |
| Generate instruction documentation. |
| |
| .. option:: -gen-intrinsic-enums |
| |
| Generate intrinsic enums. |
| |
| .. option:: -intrinsic-prefix=prefix |
| |
| Make -gen-intrinsic-enums generate intrinsics with this target *prefix*. |
| |
| .. option:: -gen-intrinsic-impl |
| |
| Generate intrinsic information. |
| |
| .. option:: -gen-opt-parser-defs |
| |
| Generate options definitions. |
| |
| .. option:: -gen-opt-rst |
| |
| Generate option RST. |
| |
| .. option:: -gen-pseudo-lowering |
| |
| Generate pseudo instruction lowering. |
| |
| .. option:: -gen-register-bank |
| |
| Generate register bank descriptions. |
| |
| .. option:: -gen-register-info |
| |
| Generate registers and register classes info. |
| |
| .. option:: -register-info-debug |
| |
| Make -gen-register-info dump register information for debugging. |
| |
| .. option:: -gen-searchable-tables |
| |
| Generate generic searchable tables. See :doc:`TableGen BackEnds <../TableGen/BackEnds>` |
| for a detailed description. |
| |
| .. option:: -gen-subtarget |
| |
| Generate subtarget enumerations. |
| |
| .. option:: -gen-x86-EVEX2VEX-tables |
| |
| Generate X86 EVEX to VEX compress tables. |
| |
| .. option:: -gen-x86-fold-tables |
| |
| Generate X86 fold tables. |
| |
| .. option:: -long-string-literals |
| |
| When emitting large string tables, prefer string literals over |
| comma-separated char literals. This can be a readability and |
| compile-time performance win, but upsets some compilers. |
| |
| .. option:: -print-enums |
| |
| Print enumeration values for a class. |
| |
| .. option:: -class=classname |
| |
| Make -print-enums print the enumeration list for the specified class. |
| |
| .. option:: -print-sets |
| |
| Print expanded sets for testing DAG exprs. |
| |
| |
| mlir-tblgen Options |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| .. option:: -gen-avail-interface-decls |
| |
| Generate availability interface declarations. |
| |
| .. option:: -gen-avail-interface-defs |
| |
| Generate op interface definitions. |
| |
| .. option:: -gen-dialect-doc |
| |
| Generate dialect documentation. |
| |
| .. option:: -dialect |
| |
| The dialect to generate. |
| |
| .. option:: -gen-directive-decl |
| |
| Generate declarations for directives (OpenMP, etc.). |
| |
| .. option:: -gen-enum-decls |
| |
| Generate enum utility declarations. |
| |
| .. option:: -gen-enum-defs |
| |
| Generate enum utility definitions. |
| |
| .. option:: -gen-enum-from-llvmir-conversions |
| |
| Generate conversions of EnumAttrs from LLVM IR. |
| |
| .. option:: -gen-enum-to-llvmir-conversions |
| |
| Generate conversions of EnumAttrs to LLVM IR. |
| |
| .. option:: -gen-llvmir-conversions |
| |
| Generate LLVM IR conversions. |
| |
| .. option:: -gen-llvmir-intrinsics |
| |
| Generate LLVM IR intrinsics. |
| |
| .. option:: -llvmir-intrinsics-filter |
| |
| Only keep the intrinsics with the specified substring in their record name. |
| |
| .. option:: -dialect-opclass-base |
| |
| The base class for the ops in the dialect we are to emit. |
| |
| .. option:: -gen-op-decls |
| |
| Generate operation declarations. |
| |
| .. option:: -gen-op-defs |
| |
| Generate operation definitions. |
| |
| .. option:: -asmformat-error-is-fatal |
| |
| Emit a fatal error if format parsing fails. |
| |
| .. option:: -op-exclude-regex |
| |
| Regular expression of name of ops to exclude (no filter if empty). |
| |
| .. option:: -op-include-regex |
| |
| Regular expression of name of ops to include (no filter if empty). |
| |
| .. option:: -gen-op-doc |
| |
| Generate operation documentation. |
| |
| .. option:: -gen-pass-decls |
| |
| Generate operation documentation. |
| |
| .. option:: -name namestring |
| |
| The name of this group of passes. |
| |
| .. option:: -gen-pass-doc |
| |
| Generate pass documentation. |
| |
| .. option:: -gen-rewriters |
| |
| Generate pattern rewriters. |
| |
| .. option:: -gen-spirv-avail-impls |
| |
| Generate SPIR-V operation utility definitions. |
| |
| .. option:: -gen-spirv-capability-implication |
| |
| Generate utility function to return implied capabilities for a given capability. |
| |
| .. option:: -gen-spirv-enum-avail-decls |
| |
| Generate SPIR-V enum availability declarations. |
| |
| .. option:: -gen-spirv-enum-avail-defs |
| |
| Generate SPIR-V enum availability definitions. |
| |
| .. option:: -gen-spirv-op-utils |
| |
| Generate SPIR-V operation utility definitions. |
| |
| .. option:: -gen-spirv-serialization |
| |
| Generate SPIR-V (de)serialization utilities and functions. |
| |
| .. option:: -gen-struct-attr-decls |
| |
| Generate struct utility declarations. |
| |
| .. option:: -gen-struct-attr-defs |
| |
| Generate struct utility definitions. |
| |
| .. option:: -gen-typedef-decls |
| |
| Generate TypeDef declarations. |
| |
| .. option:: -gen-typedef-defs |
| |
| Generate TypeDef definitions. |
| |
| .. option:: -typedefs-dialect name |
| |
| Generate types for this dialect. |
| |
| EXIT STATUS |
| ----------- |
| |
| If :program:`*-tblgen` succeeds, it will exit with 0. Otherwise, if an error |
| occurs, it will exit with a non-zero value. |