[llvm-commits] CVS: llvm/www/docs/WritingAnLLVMPass.html

Brian Gaeke gaeke at cs.uiuc.edu
Thu Jul 17 13:54:02 PDT 2003


Changes in directory llvm/www/docs:

WritingAnLLVMPass.html updated: 1.14 -> 1.15

---
Log message:

Added bits about MachineFunctionPass


---
Diffs of the changes:

Index: llvm/www/docs/WritingAnLLVMPass.html
diff -u llvm/www/docs/WritingAnLLVMPass.html:1.14 llvm/www/docs/WritingAnLLVMPass.html:1.15
--- llvm/www/docs/WritingAnLLVMPass.html:1.14	Mon Jul 14 12:20:40 2003
+++ llvm/www/docs/WritingAnLLVMPass.html	Thu Jul 17 13:53:20 2003
@@ -40,6 +40,8 @@
         <li><a href="#doFinalization_fn">The <tt>doFinalization(Function
                                              &)</tt> method</a>
         </ul>
+     <li><a href="#MachineFunctionPass">The <tt>MachineFunctionPass</tt>
+                                        class</a>
      </ul>
   <li><a href="#registration">Pass Registration</a>
      <ul>
@@ -568,6 +570,31 @@
 program being compiled.  This can be used to perform per-function
 finalization.<p>
 
+
+<!-- ======================================================================= -->
+</ul><table width="100%" bgcolor="#441188" border=0 cellpadding=4 cellspacing=0>
+<tr><td> </td><td width="100%">  
+<font color="#EEEEFF" face="Georgia,Palatino"><b>
+<a name="MachineFunctionPass">The <tt>MachineFunctionPass</tt> class
+</b></font></td></tr></table><ul>
+
+A <tt>MachineFunctionPass</tt> executes on the machine-dependent
+representation of each LLVM function in the program,
+independent of all of the other functions in the program.
+A <tt>MachineFunctionPass</tt> is also a <tt>FunctionPass</tt>, so all
+the restrictions that apply to a <tt>FunctionPass</tt> also apply to it.
+<tt>MachineFunctionPass</tt>es also have additional restrictions. In
+particular, <tt>MachineFunctionPass</tt>es are not allowed to do any of
+the following:
+
+<ol>
+<li>Modify any LLVM Instructions, BasicBlocks or Functions.
+<li>Modify a MachineFunction other than the one currently being processed.
+<li>Add or remove MachineFunctions from the current Module.
+<li>Add or remove global variables from the current Module.
+<li>Maintain state across invocations of
+    <a href="#runOnMachineFunction"><tt>runOnMachineFunction</tt></a> (including global data)
+</ol><p>
 
 
 <!-- *********************************************************************** -->





More information about the llvm-commits mailing list