aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-03-28 02:46:29 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-03-28 02:46:29 +0000
commitc10f0af135f9f60627d7cd48431dc7497e57e95b (patch)
tree64fe5230f6fef11f686f55c01a6aca79ed493972 /docs
parent5373b721c0c76c54f948b9097ba7f4737dbab730 (diff)
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
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.html23
1 files changed, 11 insertions, 12 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index e51618de18..11b43befdf 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -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