llvm.org GIT mirror llvm / f631e0b
Fix a couple of typos and an inaccurate description in the new TableGen doc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204363 91177308-0d34-0410-b5e6-96231b3b80d8 Eli Bendersky 5 years ago
1 changed file(s) with 6 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
2222 it easier to structure domain specific information.
2323
2424 The core part of TableGen parses a file, instantiates the declarations, and
25 hands the result off to a domain-specific `backends`_ for processing.
25 hands the result off to a domain-specific `backend`_ for processing.
2626
2727 The current major users of TableGen are :doc:`../CodeGenerator`
2828 and the
144144 ``ADD32rr``, and the comment at the end of the line indicates the superclasses
145145 of the definition. The body of the record contains all of the data that
146146 TableGen assembled for the record, indicating that the instruction is part of
147 the "X86" namespace, the pattern indicating how the instruction should be
148 emitted into the assembly file, that it is a two-address instruction, has a
149 particular encoding, etc. The contents and semantics of the information in the
150 record are specific to the needs of the X86 backend, and are only shown as an
151 example.
147 the "X86" namespace, the pattern indicating how the instruction is selected by
148 the code generator, that it is a two-address instruction, has a particular
149 encoding, etc. The contents and semantics of the information in the record are
150 specific to the needs of the X86 backend, and are only shown as an example.
152151
153152 As you can see, a lot of information is needed for every instruction supported
154153 by the code generator, and specifying it all manually would be unmaintainable,
181180 Syntax
182181 ======
183182
184 TableGen has a syntax that is losely based on C++ templates, with built-in
183 TableGen has a syntax that is loosely based on C++ templates, with built-in
185184 types and specification. In addition, TableGen's syntax introduces some
186185 automation concepts like multiclass, foreach, let, etc.
187186