forked from OSchip/llvm-project
746 lines
16 KiB
ReStructuredText
746 lines
16 KiB
ReStructuredText
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.
|