tblgen - Target Description To C++ Code Generator
=================================================

.. program:: tblgen

SYNOPSIS
--------

:program:`tblgen` [*options*] [*filename*]

DESCRIPTION
-----------

:program:`tblgen` translates from target description (``.td``) files into C++
code that can be included in the definition of an LLVM target library.  Most
users of LLVM will not need to use this program.  It is only for assisting with
writing an LLVM target backend.

The input and output of :program:`tblgen` is beyond the scope of this short
introduction; please see the :doc:`introduction to TableGen
<../TableGen/index>`.

The *filename* argument specifies the name of a Target Description (``.td``)
file to read as input.

OPTIONS
-------

.. program:: tblgen

.. option:: -help

 Print a summary of command line options.

.. option:: -o filename

 Specify the output file name.  If ``filename`` is ``-``, then
 :program:`tblgen` sends its output to standard output.

.. 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:: -asmparsernum N

 Make -gen-asm-parser emit assembly writer number ``N``.

.. option:: -asmwriternum N

 Make -gen-asm-writer emit assembly writer number ``N``.

.. option:: -class className

 Print the enumeration list for this class.

.. option:: -print-records

 Print all records to standard output (default).

.. option:: -dump-json

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

.. option:: -print-enums

 Print enumeration values for a class.

.. option:: -print-sets

 Print expanded sets for testing DAG exprs.

.. option:: -gen-emitter

 Generate machine code emitter.

.. option:: -gen-register-info

 Generate registers and register classes info.

.. option:: -gen-instr-info

 Generate instruction descriptions.

.. option:: -gen-asm-writer

 Generate the assembly writer.

.. option:: -gen-disassembler

 Generate disassembler.

.. option:: -gen-pseudo-lowering

 Generate pseudo instruction lowering.

.. option:: -gen-dag-isel

 Generate a DAG (Directed Acyclic Graph) instruction selector.

.. option:: -gen-asm-matcher

 Generate assembly instruction matcher.

.. option:: -gen-dfa-packetizer

 Generate DFA Packetizer for VLIW targets.

.. option:: -gen-fast-isel

 Generate a "fast" instruction selector.

.. option:: -gen-subtarget

 Generate subtarget enumerations.

.. option:: -gen-intrinsic-enums

 Generate intrinsic enums.

.. option:: -gen-intrinsic-impl

 Generate intrinsic implementation.

.. option:: -gen-tgt-intrinsic

 Generate target intrinsic information.

.. option:: -gen-enhanced-disassembly-info

 Generate enhanced disassembly info.

.. option:: -gen-exegesis

 Generate llvm-exegesis tables.

.. option:: -version

 Show the version number of this program.

EXIT STATUS
-----------

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