validation fixes
[oota-llvm.git] / docs / Passes.html
index 352263eca73aac14af5ab186c33d570da9577aee..3492a2797092ea4338e62da4d8563941a341cfc8 100644 (file)
@@ -179,7 +179,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "  <p>\n" if !
 <tr><th>Option</th><th>Name</th></tr>
 <tr><td><a href="#deadarghaX0r">-deadarghaX0r</a></td><td>Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)</td></tr>
 <tr><td><a href="#extract-blocks">-extract-blocks</a></td><td>Extract Basic Blocks From Module (for bugpoint use)</td></tr>
-<tr><td><a href="#emitbitcode">-emitbitcode</a></td><td>Bitcode Writer</td></tr>
+<tr><td><a href="#preverify">-preverify</a></td><td>Preliminary module verification</td></tr>
 <tr><td><a href="#verify">-verify</a></td><td>Module Verifier</td></tr>
 <tr><td><a href="#view-cfg">-view-cfg</a></td><td>View CFG of function</td></tr>
 <tr><td><a href="#view-cfg-only">-view-cfg-only</a></td><td>View CFG of function (with no function bodies)</td></tr>
@@ -1826,10 +1826,18 @@ if (i == j)
 
 <!-------------------------------------------------------------------------- -->
 <div class="doc_subsection">
-  <a name="emitbitcode">Bitcode Writer</a>
+  <a name="preverify">Preliminary module verification</a>
 </div>
 <div class="doc_text">
-  <p>Yet to be written.</p>
+  <p>
+  Ensures that the module is in the form required by the <a
+  href="#verifier">Module Verifier</a> pass.
+  </p>
+  
+  <p>
+  Running the verifier runs this pass automatically, so there should be no need
+  to use it directly.
+  </p>
 </div>
 
 <!-------------------------------------------------------------------------- -->
@@ -1845,7 +1853,7 @@ if (i == j)
   before performing optimizing transformations.
   </p>
 
-  <p>
+  <ul>
     <li>Both of a binary operator's parameters are of the same type.</li>
     <li>Verify that the indices of mem access instructions match other
         operands.</li>
@@ -1856,8 +1864,8 @@ if (i == j)
     <li>The code is in valid SSA form.</li>
     <li>It should be illegal to put a label into any other type (like a
         structure) or to return one. [except constant arrays!]</li>
-    <li>Only phi nodes can be self referential: 'add int %0, %0 ; <int>:0' is
-        bad.</li>
+    <li>Only phi nodes can be self referential: <tt>%x = add int %x, %x</tt> is
+        invalid.</li>
     <li>PHI nodes must have an entry for each predecessor, with no extras.</li>
     <li>PHI nodes must be the first thing in a basic block, all grouped
         together.</li>
@@ -1875,7 +1883,7 @@ if (i == j)
         not agree with the function return value type.</li>
     <li>Function call argument types match the function prototype.</li>
     <li>All other things that are tested by asserts spread about the code.</li>
-  </p>
+  </ul>
   
   <p>
   Note that this does not provide full security verification (like Java), but