XXX-TBLGEN(1)

πŸ“¦
version 12.0.1 Β· 4 versions
, in fedora 43, fedora 44

✨ XXX-TBLGEN(1) ✨

okay so bestie, welcome to the manual page for xxx-tblgen, part of the LLVM family πŸ’œ β€” it's the Target Description to C++ Code situation, and it's lowkey a whole vibe.


🌸 NAME 🌸

xxx-tblgen β€” Target Description to C++ Code


πŸŽ€ SYNOPSIS πŸŽ€

xxx-tblgen [options] [filename]

πŸ¦‹ DESCRIPTION πŸ¦‹

so. xxx-tblgen is literally a family of programs πŸ‘‘ that translates target description (.td) files into C++ code and other output formats. fr fr.

ngl, most users of LLVM will not need to use this program. it's used only for writing parts of the compiler or LLVM target backends. iykyk πŸ’…

The details of the input and output of xxx-tblgen is beyond the scope of this short introduction; please see the TableGen Overview for an introduction and for references to additional TableGen documents. (yes bestie, there's lore, go read it 🫢)

The filename argument specifies the name of the Target Description (.td) file that TableGen processes. that's the main character right there ✨


πŸ’– OPTIONS πŸ’–

🌈 General Options

  • -help β€” Print a description of the command line options. ur little cheat sheet, slay.
  • -help-list β€” Print a description of the command line options in a simple list format. same tea, simpler cup πŸ“
  • -D=macroname β€” Specify the name of a macro to be defined. The name is defined, but it has no particular value. like a name tag with no job title πŸ’€
  • -d=filename β€” Specify the name of the dependency filename.
  • -debug β€” Enable debug output. turn on the chaos cam πŸŽ₯
  • -dump-json β€” Print a JSON representation of all records, suitable for further automated processing. robot food, delicious πŸ€–
  • -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. all vibes, no output ✨
  • -o filename β€” Specify the output file name. If filename is -, then xxx-tblgen sends its output to standard output.
  • -print-records β€” Print all classes and records to standard output (default backend option). the default, periodt.
  • -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. stopwatch era ⏱️
  • -version β€” Show the version number of the program.
  • -write-if-changed β€” Write the output file only if it is new or has changed. no unnecessary rewrites, we love efficiency πŸ’…

⭐ 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 β€” Geneerate attributes.
  • -gen-automata β€” Generate generic automata.
  • -gen-callingconv β€” Generate calling convention descriptions.
  • -gen-compress-inst-emitter β€” Generate RISCV 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. bestie just tell me why 😭
  • -gen-global-isel-combiner β€” Generate GlobalISel combiner.
  • -combiners=list β€” Make -gen-global-isel-combiner emit the specified combiners.
  • -gicombiner-show-expansions β€” Make -gen-global-isel-combiner use C++ comments to indicate occurences of code expansion.
  • -gicombiner-stop-after-build β€” Make -gen-global-isel-combiner stop processing after building the match tree.
  • -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. πŸ’€ sorry to those compilers i guess
  • -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.

🧚 clang-tblgen Options

  • -gen-clang-attr-classes β€” Generate Clang attribute clases.
  • -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-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 β€” spits out arm_mve.h for Clang ✨
  • -gen-arm-mve-builtin-def β€” makes the ARM MVE builtin definitions for Clang πŸ’–
  • -gen-arm-mve-builtin-sema β€” generates the ARM MVE builtin sema checks for Clang πŸŽ€
  • -gen-arm-mve-builtin-codegen β€” generates the ARM MVE builtin code-generator for Clang πŸ¦‹
  • -gen-arm-mve-builtin-aliases β€” generates the list of valid ARM MVE builtin aliases for Clang 🌸
  • -gen-arm-cde-header β€” generates arm_cde.h for Clang πŸ’…
  • -gen-arm-cde-builtin-def β€” ARM CDE builtin definitions for Clang, bestie 🫢
  • -gen-arm-cde-builtin-sema β€” ARM CDE builtin sema checks for Clang 😭
  • -gen-arm-cde-builtin-codegen β€” ARM CDE builtin code-generator for Clang πŸ”₯
  • -gen-arm-cde-builtin-aliases β€” the list of valid ARM CDE builtin aliases for Clang πŸ‘‘
  • -gen-attr-docs β€” generates attribute documentation 🌈
  • -gen-diag-docs β€” generates diagnostic documentation ⭐
  • -gen-opt-docs β€” generates option documentation πŸ’€
  • -gen-clang-data-collectors β€” generates data collectors for AST nodes πŸ™ˆ
  • -gen-clang-test-pragma-attribute-supported-attributes β€” generates a list of attributes supported by #pragma Clang attribute, literally just for testing purposes πŸ“

🌟 mlir-tblgen Options 🌟

  • -gen-avail-interface-decls β€” generates availability interface declarations 🧚
  • -gen-avail-interface-defs β€” generates op interface definitions πŸ’œ
  • -gen-dialect-doc β€” generates dialect documentation ✨
  • -dialect β€” the dialect to generate πŸ’–
  • -gen-directive-decl β€” generates declarations for directives (OpenMP, etc.) πŸŽ€
  • -gen-enum-decls β€” generates enum utility declarations πŸ¦‹
  • -gen-enum-defs β€” generates enum utility definitions 🌸
  • -gen-enum-from-llvmir-conversions β€” generates conversions of EnumAttrs from LLVM IR πŸ’…
  • -gen-enum-to-llvmir-conversions β€” generates conversions of EnumAttrs to LLVM IR 🫢
  • -gen-llvmir-conversions β€” generates LLVM IR conversions 😭
  • -gen-llvmir-intrinsics β€” generates LLVM IR intrinsics πŸ”₯
  • -llvmir-intrinsics-filter β€” only keeps the intrinsics whose record name contains the substring you specify πŸ‘‘
  • -dialect-opclass-base β€” the base class for the ops in the dialect we're about to emit 🌈
  • -gen-op-decls β€” generates operation declarations ⭐
  • -gen-op-defs β€” generates operation definitions πŸ’€
  • -asmformat-error-is-fatal β€” emits a fatal error if format parsing fails. so dramatic. so valid. πŸ™ˆ
  • -op-exclude-regex β€” regular expression of the name of ops to exclude (no filter if empty) πŸ“
  • -op-include-regex β€” regular expression of the name of ops to include (no filter if empty) 🧚
  • -gen-op-doc β€” generates operation documentation πŸ’œ
  • -gen-pass-decls β€” the manpage says "Generate operation documentation" here and honestly bestie, we're just the messengers, we do not make the rules 😭 it is what it says ✨
  • -name namestring β€” the name of this group of passes πŸ’–
  • -gen-pass-doc β€” generates pass documentation πŸŽ€
  • -gen-rewriters β€” generates pattern rewriters πŸ¦‹
  • -gen-spirv-avail-impls β€” generates SPIR-V operation utility definitions 🌸
  • -gen-spirv-capability-implication β€” generates a utility function that returns the implied capabilities for a given capability πŸ’…
  • -gen-spirv-enum-avail-decls β€” generates SPIR-V enum availability declarations 🫢
  • -gen-spirv-enum-avail-defs β€” generates SPIR-V enum availability definitions 😭
  • -gen-spirv-op-utils β€” generates SPIR-V operation utility definitions πŸ”₯
  • -gen-spirv-serialization β€” generates SPIR-V (de)serialization utilities and functions πŸ‘‘
  • -gen-struct-attr-decls β€” generates struct utility declarations 🌈
  • -gen-struct-attr-defs β€” generates struct utility definitions ⭐
  • -gen-typedef-decls β€” generates TypeDef declarations πŸ’€
  • -gen-typedef-defs β€” generates TypeDef definitions πŸ™ˆ
  • -typedefs-dialect name β€” generates types for this dialect πŸ“

πŸšͺ EXIT STATUS πŸšͺ

If xxx-tblgen succeeds, it exits with 0. If an error happens instead, it exits with a non-zero value. that's it, that's the vibe check πŸ’…


πŸ’Œ AUTHOR πŸ’Œ

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


2003-2024, LLVM Project


and that's the whole page, bestie!! 🫢 this was XXX-TBLGEN(1), dated 2024-07-18, brought to you by the LLVM Project (copyright 2003-2024) β€” go forth and generate, you absolute icon πŸ‘‘πŸ’–βœ¨

πŸ“¦ where this page comes from