Update failing SingleSource test-case list.
[oota-llvm.git] / docs / TableGenFundamentals.html
index 0542722100387e6d09eca82d6180cc9c05daba49..ca327ce421fc11e74a5bc46b5a8a8354322f3aa3 100644 (file)
   <ol>
     <li><a href="#">todo</a></li>
   </ol></li>
-  <li><a href="#codegenerator">The LLVM code generator</a>
-  <ol>
-    <li><a href="#">todo</a></li>
-  </ol></li>
 </ul>
 </div>
 
@@ -68,7 +64,7 @@ makes it easier to structure domain specific information.</p>
 <p>The core part of TableGen <a href="#syntax">parses a file</a>, instantiates
 the declarations, and hands the result off to a domain-specific "<a
 href="#backends">TableGen backend</a>" for processing.  The current major user
-of TableGen is the <a href="#codegenerator">LLVM code generator</a>.</p>
+of TableGen is the <a href="CodeGenerator.html">LLVM code generator</a>.</p>
 
 <p>Note that if you work on TableGen much, and use emacs or vim, that you can
 find an emacs "TableGen mode" and a vim language file in
@@ -300,24 +296,25 @@ natural syntax and flavor for the application.  The current expression forms
 supported include:</p>
 
 <ul>
-<li>? - Uninitialized field.</li>
-<li>0b1001011 - Binary integer value.</li>
-<li>07654321 - Octal integer value (indicated by a leading 0).</li>
-<li>7 - Decimal integer value.</li>
-<li>0x7F - Hexadecimal integer value.</li>
-<li>"foo" - String value.</li>
-<li>[{ .... }] - Code fragment.</li>
-<li>[ X, Y, Z ] - List value.</li>
-<li>{ a, b, c } - Initializer for a "bits&lt;3&gt;" value.</li>
-<li>value - Value reference.</li>
-<li>value{17} - Access to one or more bits of a value.</li>
-<li>DEF - Reference to a record definition.</li>
-<li>X.Y - Reference to the subfield of a value.</li>
-
-<li>(DEF a, b) - A dag value.  The first element is required to be a record
-definition, the remaining elements in the list may be arbitrary other values,
-including nested 'dag' values.</li>
-
+<li><tt>?</tt> - uninitialized field</li>
+<li><tt>0b1001011</tt> - binary integer value</li>
+<li><tt>07654321</tt> - octal integer value (indicated by a leading 0)</li>
+<li><tt>7</tt> - decimal integer value</li>
+<li><tt>0x7F</tt> - hexadecimal integer value</li>
+<li><tt>"foo"</tt> - string value</li>
+<li><tt>[{ ... }]</tt> - code fragment</li>
+<li><tt>[ X, Y, Z ]</tt> - list value.</li>
+<li><tt>{ a, b, c }</tt> - initializer for a "bits&lt;3&gt;" value</li>
+<li><tt>value</tt> - value reference</li>
+<li><tt>value{17}</tt> - access to one bit of a value</li>
+<li><tt>value{15-17}</tt> - access to multiple bits of a value</li>
+<li><tt>DEF</tt> - reference to a record definition</li>
+<li><tt>X.Y</tt> - reference to the subfield of a value</li>
+<li><tt>list[4-7,17,2-3]</tt> - A slice of the 'list' list, including elements 
+4,5,6,7,17,2, and 3 from it.  Elements may be included multiple times.</li>
+<li><tt>(DEF a, b)</tt> - a dag value.  The first element is required to be a
+record definition, the remaining elements in the list may be arbitrary other
+values, including nested `<tt>dag</tt>' values.</li>
 </ul>
 
 <p>Note that all of the values have rules specifying how they convert to values
@@ -337,7 +334,7 @@ for different types.  These rules allow you to assign a value like "7" to a
 (collectively known as 'records') in TableGen are the main high-level unit of
 information that TableGen collects.  Records are defined with a <tt>def</tt> or
 <tt>class</tt> keyword, the record name, and an optional list of "<a
-href="templateargs">template arguments</a>".  If the record has superclasses,
+href="#templateargs">template arguments</a>".  If the record has superclasses,
 they are specified as a comma seperated list that starts with a colon character
 (":").  If <a href="#valuedef">value definitions</a> or <a href="#recordlet">let
 expressions</a> are needed for the class, they are enclosed in curly braces
@@ -550,18 +547,6 @@ about any particular backend, except maybe -print-enums as an example.  This
 should highlight the APIs in <tt>TableGen/Record.h</tt>.</p>
 </div>
 
-<!-- *********************************************************************** -->
-<div class="doc_section"><a name="codegenerator">The LLVM code generator</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="doc_text">
-<p>This is just a temporary, convenient, place to put stuff about the code
-generator before it gets its own document.  This should describe all of the
-tablegen backends used by the code generator and the classes/definitions they
-expect.</p>
-</div>
-
 <!-- *********************************************************************** -->
 
 <hr>