blob: a42b04dbf8be3e5290cc3ddecd0e13905683666e [file] [log] [blame]
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +00001tblgen - Target Description To C++ Code Generator
2=================================================
3
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +00004SYNOPSIS
5--------
6
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +00007:program:`tblgen` [*options*] [*filename*]
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +00008
9DESCRIPTION
10-----------
11
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000012:program:`tblgen` translates from target description (``.td``) files into C++
13code that can be included in the definition of an LLVM target library. Most
14users of LLVM will not need to use this program. It is only for assisting with
15writing an LLVM target backend.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000016
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000017The input and output of :program:`tblgen` is beyond the scope of this short
Sean Silva397ee6e2014-04-07 22:46:40 +000018introduction; please see the :doc:`introduction to TableGen
19<../TableGen/index>`.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000020
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000021The *filename* argument specifies the name of a Target Description (``.td``)
22file to read as input.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000023
24OPTIONS
25-------
26
Dmitri Gribenko7d8b6072013-04-27 16:34:24 +000027.. program:: tblgen
28
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000029.. option:: -help
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000030
31 Print a summary of command line options.
32
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000033.. option:: -o filename
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000034
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000035 Specify the output file name. If ``filename`` is ``-``, then
36 :program:`tblgen` sends its output to standard output.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000037
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000038.. option:: -I directory
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000039
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000040 Specify where to find other target description files for inclusion. The
41 ``directory`` value should be a full or partial path to a directory that
42 contains target description files.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000043
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000044.. option:: -asmparsernum N
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000045
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000046 Make -gen-asm-parser emit assembly writer number ``N``.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000047
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000048.. option:: -asmwriternum N
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000049
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000050 Make -gen-asm-writer emit assembly writer number ``N``.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000051
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000052.. option:: -class className
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000053
54 Print the enumeration list for this class.
55
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000056.. option:: -print-records
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000057
58 Print all records to standard output (default).
59
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000060.. option:: -print-enums
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000061
Dmitri Gribenko7d8b6072013-04-27 16:34:24 +000062 Print enumeration values for a class.
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000063
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000064.. option:: -print-sets
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000065
66 Print expanded sets for testing DAG exprs.
67
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000068.. option:: -gen-emitter
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000069
70 Generate machine code emitter.
71
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000072.. option:: -gen-register-info
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000073
74 Generate registers and register classes info.
75
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000076.. option:: -gen-instr-info
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000077
78 Generate instruction descriptions.
79
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000080.. option:: -gen-asm-writer
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000081
82 Generate the assembly writer.
83
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000084.. option:: -gen-disassembler
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000085
86 Generate disassembler.
87
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000088.. option:: -gen-pseudo-lowering
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000089
90 Generate pseudo instruction lowering.
91
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000092.. option:: -gen-dag-isel
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000093
94 Generate a DAG (Directed Acycle Graph) instruction selector.
95
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +000096.. option:: -gen-asm-matcher
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +000097
98 Generate assembly instruction matcher.
99
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000100.. option:: -gen-dfa-packetizer
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000101
102 Generate DFA Packetizer for VLIW targets.
103
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000104.. option:: -gen-fast-isel
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000105
106 Generate a "fast" instruction selector.
107
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000108.. option:: -gen-subtarget
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000109
110 Generate subtarget enumerations.
111
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000112.. option:: -gen-intrinsic
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000113
114 Generate intrinsic information.
115
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000116.. option:: -gen-tgt-intrinsic
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000117
118 Generate target intrinsic information.
119
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000120.. option:: -gen-enhanced-disassembly-info
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000121
122 Generate enhanced disassembly info.
123
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000124.. option:: -version
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000125
126 Show the version number of this program.
127
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000128EXIT STATUS
129-----------
130
Dmitri Gribenkocbb07be2012-11-29 17:41:05 +0000131If :program:`tblgen` succeeds, it will exit with 0. Otherwise, if an error
Daniel Dunbar8f4a8a62012-05-08 16:50:35 +0000132occurs, it will exit with a non-zero value.