Undocument the implementation keyword

Docuemnt the checkpoint keyword


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35413 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2007-03-28 02:46:29 +00:00
parent 5373b721c0
commit c10f0af135

View File

@ -27,6 +27,7 @@
<li><a href="#paramattrs">Parameter Attributes</a></li>
<li><a href="#moduleasm">Module-Level Inline Assembly</a></li>
<li><a href="#datalayout">Data Layout</a></li>
<li><a href="#checkpoint">Check Points</a></li>
</ol>
</li>
<li><a href="#typesystem">Type System</a>
@ -371,9 +372,6 @@ symbol table entries. Here is an example of the "hello world" module:</p>
<i>; External declaration of the puts function</i>
<a href="#functionstructure">declare</a> i32 %puts(i8 *) <i>; i32(i8 *)* </i>
<i>; Global variable / Function body section separator</i>
implementation
<i>; Definition of main function</i>
define i32 %main() { <i>; i32()* </i>
<i>; Convert [13x i8 ]* to i8 *...</i>
@ -397,13 +395,6 @@ represented by a pointer to a memory location (in this case, a pointer to an
array of char, and a pointer to a function), and have one of the following <a
href="#linkage">linkage types</a>.</p>
<p>Due to a limitation in the current LLVM assembly parser (it is limited by
one-token lookahead), modules are split into two pieces by the "implementation"
keyword. Global variable prototypes and definitions must occur before the
keyword, and function definitions must occur after it. Function prototypes may
occur either before or after it. In the future, the implementation keyword may
become a noop, if the parser gets smarter.</p>
</div>
<!-- ======================================================================= -->
@ -856,6 +847,16 @@ following rules:
terms of 64 <2 x double>, for example.</li>
</ol>
</div>
<!-- ======================================================================= -->
<div class="doc_subsection">
<a name="datalayout">Data Layout</a>
</div>
<div class="doc_text">
<p>At the top level, the keyword <tt>checkpoint</tt> may be used to force the
assembler to check point the types and values it has defined so far. Any
unresolved types or references will generate error messages. This is useful
as an assertion point or for debugging.</p>
</div>
<!-- *********************************************************************** -->
<div class="doc_section"> <a name="typesystem">Type System</a> </div>
@ -2719,8 +2720,6 @@ compiled to LLVM:</p>
%RT = type { i8 , [10 x [20 x i32]], i8 }
%ST = type { i32, double, %RT }
implementation
define i32* %foo(%ST* %s) {
entry:
%reg = getelementptr %ST* %s, i32 1, i32 2, i32 1, i32 5, i32 13