summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2003-07-17 18:53:20 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2003-07-17 18:53:20 +0000
commitcab8b6f448aadbe66fe44bc570d07a8eaf96ab40 (patch)
tree8eb15a3871e40a2c79f03770b5d2086f7e203fbc /docs
parent71b35cd0fe1c17255e1c49af3e8f592725ed1721 (diff)
downloadllvm-cab8b6f448aadbe66fe44bc570d07a8eaf96ab40.tar.gz
Added bits about MachineFunctionPass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7192 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/WritingAnLLVMPass.html27
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html
index c80fd848c50b..414ed1226c76 100644
--- a/docs/WritingAnLLVMPass.html
+++ b/docs/WritingAnLLVMPass.html
@@ -40,6 +40,8 @@
<li><a href="#doFinalization_fn">The <tt>doFinalization(Function
&amp;)</tt> method</a>
</ul>
+ <li><a href="#MachineFunctionPass">The <tt>MachineFunctionPass</tt>
+ class</a>
</ul>
<li><a href="#registration">Pass Registration</a>
<ul>
@@ -569,6 +571,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>&nbsp;</td><td width="100%">&nbsp;
+<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>
+
<!-- *********************************************************************** -->
</ul><table width="100%" bgcolor="#330077" border=0 cellpadding=4 cellspacing=0>