TBLGEN(1)

NAME
tblgen - Description to C++ Code

SYNOPSIS

clang-tblgen [options] [filename]

lldb-tblgen [options] [filename]

llvm-tblgen [options] [filename]

mlir-tblgen [options] [filename]

DESCRIPTION

*-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 *-tblgen programs is beyond the scope of this short introduction; please see the TableGen Overview <> 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

-help
    Print a description of the command line options.

-help-list
    Print a description of the command line options in a simple list format.

-D=macroname
    Specify the name of a macro to be defined. The name is defined, but it has no particular value.

-d=filename
    Specify the name of the dependency filename.

-debug
    Enable debug output.

-dump-json
    Print a JSON representation of all records, suitable for further automated processing.

-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.

-null-backend
    Parse the source files and build the records, but do not run any backend. This is useful for timing the frontend.

-o filename
    Specify the output file name. If filename is -, then *-tblgen sends its output to standard output.

-print-records
    Print all classes and records to standard output (default backend option).

-print-detailed-records
    Print a detailed report of all global variables, classes, and records to standard output.

-stats
    Print a report with any statistics collected by the backend.

-time-phases
    Time the parser and backend phases and print a report.

-version
    Show the version number of the program.

-write-if-changed
    Write the output file only if it is new or has changed.

  clang-tblgen Options

-gen-clang-attr-classes
    Generate Clang attribute classes.

-gen-clang-attr-parser-string-switches
    Generate all parser-related attribute string switches.

-gen-clang-attr-subject-match-rules-parser-string-switches
    Generate all parser-related attribute subject match rule string switches.

-gen-clang-attr-impl
    Generate Clang attribute implementations.

-gen-clang-attr-list"
    Generate a Clang attribute list.

-gen-clang-attr-subject-match-rule-list
    Generate a Clang attribute subject match rule list.

-gen-clang-attr-pch-read
    Generate Clang PCH attribute reader.

-gen-clang-attr-pch-write
    Generate Clang PCH attribute writer.

-gen-clang-attr-has-attribute-impl
    Generate a Clang attribute spelling list.

-gen-clang-attr-spelling-index
    Generate a Clang attribute spelling index.

-gen-clang-attr-ast-visitor
    Generate a recursive AST visitor for Clang attributes.

-gen-clang-attr-template-instantiate
    Generate a Clang template instantiate code.

-gen-clang-attr-parsed-attr-list
    Generate a Clang parsed attribute list.

-gen-clang-attr-parsed-attr-impl
    Generate the Clang parsed attribute helpers.

-gen-clang-attr-parsed-attr-kinds
    Generate a Clang parsed attribute kinds.

-gen-clang-attr-text-node-dump
    Generate Clang attribute text node dumper.

-gen-clang-attr-node-traverse
    Generate Clang attribute traverser.

-gen-clang-diags-defs
    Generate Clang diagnostics definitions.

-clang-component component
    Only use warnings from specified component.

-gen-clang-diag-groups
    Generate Clang diagnostic groups.

-gen-clang-diags-index-name
    Generate Clang diagnostic name index.

-gen-clang-basic-reader
    Generate Clang BasicReader classes.

-gen-clang-basic-writer
    Generate Clang BasicWriter classes.

-gen-clang-comment-nodes
    Generate Clang AST comment nodes.

-gen-clang-decl-nodes
    Generate Clang AST declaration nodes.

-gen-clang-stmt-nodes
    Generate Clang AST statement nodes.

-gen-clang-type-nodes
    Generate Clang AST type nodes.

-gen-clang-type-reader
    Generate Clang AbstractTypeReader class.

-gen-clang-type-writer
    Generate Clang AbstractTypeWriter class.

-gen-clang-opcodes
    Generate Clang constexpr interpreter opcodes.

-gen-clang-sa-checkers
    Generate Clang static analyzer checkers.

-gen-clang-comment-html-tags
    Generate efficient matchers for HTML tag names that are used in documentation comments.

-gen-clang-comment-html-tags-properties
    Generate efficient matchers for HTML tag properties.

-gen-clang-comment-html-named-character-references
    Generate function to translate named character references to UTF-8 sequences.

-gen-clang-comment-command-info
    Generate command properties for commands that are used in documentation comments.

-gen-clang-comment-command-list
    Generate list of commands that are used in documentation comments.

-gen-clang-opencl-builtins
    Generate OpenCL builtin declaration handlers.

-gen-arm-neon
    Generate arm_neon.h for Clang.

-gen-arm-fp16
    Generate arm_fp16.h for Clang.

-gen-arm-bf16
    Generate arm_bf16.h for Clang.

-gen-arm-neon-sema
    Generate ARM NEON sema support for Clang.

-gen-arm-neon-test
    Generate ARM NEON tests for Clang.

-gen-arm-immcheck-types
    Generate arm_immcheck_types.inc for Clang.

-gen-arm-sve-header
    Generate arm_sve.h for Clang.

-gen-arm-sve-builtins
    Generate arm_sve_builtins.inc for Clang.

-gen-arm-sve-builtin-codegen
    Generate arm_sve_builtin_cg_map.inc for Clang.

-gen-arm-sve-typeflags
    Generate arm_sve_typeflags.inc for Clang.

-gen-arm-sve-sema-rangechecks
    Generate arm_sve_sema_rangechecks.inc for Clang.

-gen-arm-mve-header
    Generate arm_mve.h for Clang.

-gen-arm-mve-builtin-def
    Generate ARM MVE builtin definitions for Clang.

-gen-arm-mve-builtin-sema
    Generate ARM MVE builtin sema checks for Clang.

-gen-arm-mve-builtin-codegen
    Generate ARM MVE builtin code-generator for Clang.

-gen-arm-mve-builtin-aliases
    Generate list of valid ARM MVE builtin aliases for Clang.

-gen-arm-cde-header
    Generate arm_cde.h for Clang.

-gen-arm-cde-builtin-def
    Generate ARM CDE builtin definitions for Clang.

-gen-arm-cde-builtin-sema
    Generate ARM CDE builtin sema checks for Clang.

-gen-arm-cde-builtin-codegen
    Generate ARM CDE builtin code-generator for Clang.

-gen-arm-cde-builtin-aliases
    Generate list of valid ARM CDE builtin aliases for Clang.

-gen-riscv-vector-header
    Generate riscv_vector.h for Clang.

-gen-riscv-vector-builtins
    Generate riscv_vector_builtins.inc for Clang.

-gen-riscv-vector-builtin-codegen
    Generate riscv_vector_builtin_cg.inc for Clang.

-gen-riscv-sifive-vector-builtins
    Generate riscv_sifive_vector_builtins.inc for Clang.

-gen-riscv-sifive-vector-builtin-codegen
    Generate riscv_sifive_vector_builtin_cg.inc for Clang.

-gen-attr-docs
    Generate attribute documentation.

-gen-diag-docs
    Generate diagnostic documentation.

-gen-opt-docs
    Generate option documentation.

-gen-clang-data-collectors
    Generate data collectors for AST nodes.

-gen-clang-test-pragma-attribute-supported-attributes
    Generate a list of attributes supported by #pragma Clang attribute for testing purposes.

  lldb-tblgen Options

gen-lldb-option-defs
    Generate lldb OptionDefinition values.

gen-lldb-property-defs
    Generate lldb PropertyDefinition values.

gen-lldb-property-enum-defs
    Generate lldb PropertyDefinition enum values.

  llvm-tblgen Options

-gen-asm-matcher
    Generate assembly instruction matcher.

-match-prefix=prefix
    Make -gen-asm-matcher match only instructions with the given prefix.

-gen-asm-parser
    Generate assembly instruction parser.

-asmparsernum=n
    Make -gen-asm-parser emit assembly parser number n.

-gen-asm-writer
    Generate assembly writer.

-asmwriternum=n
    Make -gen-asm-writer emit assembly writer number n.

-gen-attrs
    Generate attributes.

-gen-automata
    Generate generic automata.

-gen-callingconv
    Generate calling convention descriptions.

-gen-compress-inst-emitter
    Generate RISC-V compressed instructions.

-gen-ctags
    Generate ctags-compatible index.

-gen-dag-isel
    Generate a DAG (directed acyclic graph) instruction selector.

-instrument-coverage
    Make -gen-dag-isel generate tables to help identify the patterns matched.

-omit-comments
    Make -gen-dag-isel omit comments. The default is false.

-gen-dfa-packetizer
    Generate DFA Packetizer for VLIW targets.

-gen-directive-decl
    Generate directive related declaration code (header file).

-gen-directive-gen
    Generate directive related implementation code part.

-gen-directive-impl
    Generate directive related implementation code.

-gen-disassembler
    Generate disassembler.

-gen-emitter
    Generate machine code emitter.

-gen-exegesis
    Generate llvm-exegesis tables.

-gen-fast-isel
    Generate a "fast" instruction selector.

-gen-global-isel
    Generate GlobalISel selector.

-gisel-coverage-file=filename
    Specify the file from which to retrieve coverage information.

-instrument-gisel-coverage
    Make -gen-global-isel generate coverage instrumentation.

-optimize-match-table
    Make -gen-global-isel generate an optimized version of the match table.

-warn-on-skipped-patterns
    Make -gen-global-isel explain why a pattern was skipped for inclusion.

-gen-global-isel-combiner
    Generate GlobalISel combiner.

-combiners=list
    Make -gen-global-isel-combiner emit the specified combiners.

-gicombiner-debug-cxxpreds
    Add debug comments to all C++ predicates emitted by -gen-global-isel-combiner

-gicombiner-stop-after-parse
    Make -gen-global-isel-combiner stop processing after parsing rules and dump state.

-gen-instr-info
    Generate instruction descriptions.

-gen-instr-docs
    Generate instruction documentation.

-gen-intrinsic-enums
    Generate intrinsic enums.

-intrinsic-prefix=prefix
    Make -gen-intrinsic-enums generate intrinsics with this target prefix.

-gen-intrinsic-impl
    Generate intrinsic information.

-gen-opt-parser-defs
    Generate options definitions.

-gen-opt-rst
    Generate option RST.

-gen-pseudo-lowering
    Generate pseudo instruction lowering.

-gen-register-bank
    Generate register bank descriptions.

-gen-register-info
    Generate registers and register classes info.

-register-info-debug
    Make -gen-register-info dump register information for debugging.

-gen-searchable-tables
    Generate generic searchable tables. See TableGen BackEnds <> for a detailed description.

-gen-subtarget
    Generate subtarget enumerations.

-gen-x86-EVEX2VEX-tables
    Generate X86 EVEX to VEX compress tables.

-gen-x86-fold-tables
    Generate X86 fold tables.

-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.

-print-enums
    Print enumeration values for a class.

-class=classname
    Make -print-enums print the enumeration list for the specified class.

-print-sets
    Print expanded sets for testing DAG exprs.

  mlir-tblgen Options

-gen-avail-interface-decls
    Generate availability interface declarations.

-gen-avail-interface-defs
    Generate op interface definitions.

-gen-dialect-doc
    Generate dialect documentation.

-dialect
    The dialect to generate.

-gen-directive-decl
    Generate declarations for directives (OpenMP, etc.).

-gen-enum-decls
    Generate enum utility declarations.

-gen-enum-defs
    Generate enum utility definitions.

-gen-enum-from-llvmir-conversions
    Generate conversions of EnumAttrs from LLVM IR.

-gen-enum-to-llvmir-conversions
    Generate conversions of EnumAttrs to LLVM IR.

-gen-llvmir-conversions
    Generate LLVM IR conversions.

-gen-llvmir-intrinsics
    Generate LLVM IR intrinsics.

-llvmir-intrinsics-filter
    Only keep the intrinsics with the specified substring in their record name.

-dialect-opclass-base
    The base class for the ops in the dialect we are to emit.

-gen-op-decls
    Generate operation declarations.

-gen-op-defs
    Generate operation definitions.

-asmformat-error-is-fatal
    Emit a fatal error if format parsing fails.

-op-exclude-regex
    Regular expression of name of ops to exclude (no filter if empty).

-op-include-regex
    Regular expression of name of ops to include (no filter if empty).

-gen-op-doc
    Generate operation documentation.

-gen-pass-decls
    Generate operation documentation.

-name namestring
    The name of this group of passes.

-gen-pass-doc
    Generate pass documentation.

-gen-rewriters
    Generate pattern rewriters.

-gen-spirv-avail-impls
    Generate SPIR-V operation utility definitions.

-gen-spirv-capability-implication
    Generate utility function to return implied capabilities for a given capability.

-gen-spirv-enum-avail-decls
    Generate SPIR-V enum availability declarations.

-gen-spirv-enum-avail-defs
    Generate SPIR-V enum availability definitions.

-gen-spirv-op-utils
    Generate SPIR-V operation utility definitions.

-gen-spirv-serialization
    Generate SPIR-V (de)serialization utilities and functions.

-gen-struct-attr-decls
    Generate struct utility declarations.

-gen-struct-attr-defs
    Generate struct utility definitions.

-gen-typedef-decls
    Generate TypeDef declarations.

-gen-typedef-defs
    Generate TypeDef definitions.

-typedefs-dialect name
    Generate types for this dialect.

EXIT STATUS

If *-tblgen succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value.

Author
Maintained by the LLVM Team (https://llvm.org/).

Copyright
2003-2026, LLVM Project