TBLGEN(1)

πŸ“¦
version 11.1.0 Β· 2 versions
, in fedora 43, fedora 44

✨ tblgen ✨

okay bestie, this is the LLVM tblgen page and honestly? it's giving "you don't need me unless you're built different" 🫢 so let's get into it.


🌸 NAME 🌸

tblgen β€” Target Description To C++ Code Generator</p> πŸ’–


πŸŽ€ SYNOPSIS πŸŽ€

tblgen [options] [filename]

πŸ¦‹ DESCRIPTION πŸ¦‹

so basically, tblgen is the lil translator that takes target description files (.td, iykyk) and turns them into C++ code that you can then include in the definition of an LLVM target library. that's the whole vibe. ✨

lowkey important heads-up though: most users of LLVM will not need to use this program, fr fr. it exists purely to help you write an LLVM target backend. it's giving niche queen πŸ‘‘

the input and output of tblgen? yeah that's beyond the scope of this short intro, sorry bestie 😭 β€” please see the introduction to TableGen for the full lore.

and the filename argument? that specifies the name of a Target Description (.td) file to read as input. periodt.


πŸ’… OPTIONS πŸ’…

  • -help β€” prints a summary of the command line options. your lil cheat sheet πŸŽ€
  • -o filename β€” specify the output file name. and if filename is -, then tblgen sends its output to standard output. slay πŸ’–
  • -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. basically "here's where my other files live" 🏠
  • -asmparsernum N β€” make -gen-asm-parser emit assembly writer number N.
  • -asmwriternum N β€” make -gen-asm-writer emit assembly writer number N.
  • -class className β€” print the enumeration list for this class.
  • -print-records β€” print all records to standard output (this one is the default, no cap).
  • -dump-json β€” print a JSON representation of all records, suitable for further automated processing. very "let the machines handle it" πŸ€–
  • -print-enums β€” print enumeration values for a class.
  • -print-sets β€” print expanded sets for testing DAG exprs.
  • -gen-emitter β€” generate machine code emitter.
  • -gen-register-info β€” generate registers and register classes info.
  • -gen-instr-info β€” generate instruction descriptions.
  • -gen-asm-writer β€” generate the assembly writer.
  • -gen-disassembler β€” generate disassembler.
  • -gen-pseudo-lowering β€” generate pseudo instruction lowering.
  • -gen-dag-isel β€” generate a DAG (Directed Acyclic Graph) instruction selector.
  • -gen-asm-matcher β€” generate assembly instruction matcher.
  • -gen-dfa-packetizer β€” generate DFA Packetizer for VLIW targets.
  • -gen-fast-isel β€” generate a "fast" instruction selector.
  • -gen-subtarget β€” generate subtarget enumerations.
  • -gen-intrinsic-enums β€” generate intrinsic enums.
  • -gen-intrinsic-impl β€” generate intrinsic implementation.
  • -gen-tgt-intrinsic β€” generate target intrinsic information.
  • -gen-enhanced-disassembly-info β€” generate enhanced disassembly info.
  • -gen-exegesis β€” generate llvm-exegesis tables.
  • -version β€” show the version number of this program. iconique πŸ‘‘

🌈 EXIT STATUS 🌈

if tblgen succeeds, it will exit with 0. πŸ’– otherwise, if an error occurs, it will exit with a non-zero value. (not the vibe, but that's the rule 😭)


πŸ’œ AUTHOR πŸ’œ

Maintained by the LLVM Team (https://llvm.org/). they're the main characters, honestly 🫢


2003-2024, LLVM Project


and that's the whole page, bestie!! this was the LLVM tblgen(1) manual, dated 2024-07-18, and honestly? it ate. go write that target backend πŸ’…βœ¨πŸŒˆ

πŸ“¦ where this page comes from