Eliminate a redundant check. This speeds up optimization of 253.perlbmk from 13...
[oota-llvm.git] / docs / ProgrammersManual.html
index 9661b7693574c076f0d8b87f311b5f642b75fa2e..1f02fe699b5b35dc5856d8f9ff3cb4f32a6153a2 100644 (file)
@@ -106,6 +106,7 @@ use-def chains</a> </li>
           <li><a href="#schanges_deleting">Deleting             <tt>Instruction</tt>s</a> </li>
           <li><a href="#schanges_replacing">Replacing an                <tt>Instruction</tt>
 with another <tt>Value</tt></a> </li>
+          <li><a href="#schanges_deletingGV">Deleting <tt>GlobalVariable</tt>s</a> </li>  
         </ul>
       </li>
 <!--
@@ -1878,6 +1879,28 @@ ReplaceInstWithValue, ReplaceInstWithInst -->
 
 </div>
 
+<!--_______________________________________________________________________-->
+<div class="doc_subsubsection">
+  <a name="schanges_deletingGV">Deleting <tt>GlobalVariable</tt>s</a>
+</div>
+
+<div class="doc_text">
+
+<p>Deleting a global variable from a module is just as easy as deleting an 
+Instruction. First, you must have a pointer to the global variable that you wish
+ to delete.  You use this pointer to erase it from its parent, the module.
+ For example:</p>
+
+<div class="doc_code">
+<pre>
+<a href="#GlobalVariable">GlobalVariable</a> *GV = .. ;
+
+GV-&gt;eraseFromParent();
+</pre>
+</div>
+
+</div>
+
 <!-- *********************************************************************** -->
 <div class="doc_section">
   <a name="advanced">Advanced Topics</a>
@@ -2195,7 +2218,7 @@ the <tt>lib/VMCore</tt> directory.</p>
   point type.</dd>
   <dt><tt>StructType</tt></dt>
   <dd>Subclass of DerivedTypes for struct types.</dd>
-  <dt><tt>FunctionType</tt></dt>
+  <dt><tt><a name="FunctionType">FunctionType</a></tt></dt>
   <dd>Subclass of DerivedTypes for function types.
     <ul>
       <li><tt>bool isVarArg() const</tt>: Returns true if its a vararg
@@ -2389,7 +2412,7 @@ method. In addition, all LLVM values can be named.  The "name" of the
 </pre>
 </div>
 
-<p><a name="#nameWarning">The name of this instruction is "foo".</a> <b>NOTE</b>
+<p><a name="nameWarning">The name of this instruction is "foo".</a> <b>NOTE</b>
 that the name of any value may be missing (an empty string), so names should
 <b>ONLY</b> be used for debugging (making the source code easier to read,
 debugging printouts), they should not be used to keep track of values or map
@@ -2805,7 +2828,7 @@ is its address (after linking) which is guaranteed to be constant.</p>
     create and what type of linkage the function should have. The <a 
     href="#FunctionType"><tt>FunctionType</tt></a> argument
     specifies the formal arguments and return value for the function. The same
-    <a href="#FunctionTypel"><tt>FunctionType</tt></a> value can be used to
+    <a href="#FunctionType"><tt>FunctionType</tt></a> value can be used to
     create multiple functions. The <tt>Parent</tt> argument specifies the Module
     in which the function is defined. If this argument is provided, the function
     will automatically be inserted into that module's list of