diff options
Diffstat (limited to 'docs/WritingAnLLVMPass.html')
-rw-r--r-- | docs/WritingAnLLVMPass.html | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index d18181e..7618657 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -909,16 +909,22 @@ finalization.</p> <p>A <tt>MachineFunctionPass</tt> is a part of the LLVM code generator that executes on the machine-dependent representation of each LLVM function in the -program. A <tt>MachineFunctionPass</tt> is also a <tt>FunctionPass</tt>, so all +program.</p> + +<p>Code generator passes are registered and initialized specially by +<tt>TargetMachine::addPassesToEmitFile</tt> and similar routines, so they +cannot generally be run from the <tt>opt</tt> or <tt>bugpoint</tt> +commands.</p> + +<p>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:</p> <ol> -<li>Modify any LLVM Instructions, BasicBlocks or Functions.</li> +<li>Modify or create any LLVM IR Instructions, BasicBlocks, Arguments, + Functions, GlobalVariables, GlobalAliases, or Modules.</li> <li>Modify a MachineFunction other than the one currently being processed.</li> -<li>Add or remove MachineFunctions from the current Module.</li> -<li>Add or remove global variables from the current Module.</li> <li>Maintain state across invocations of <a href="#runOnMachineFunction"><tt>runOnMachineFunction</tt></a> (including global data)</li> @@ -1829,7 +1835,7 @@ Despite that, we have kept the LLVM passes SMP ready, and you should too.</p> <a href="mailto:sabre@nondot.org">Chris Lattner</a><br> <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2010-02-18 15:37:52 +0100 (Thu, 18 Feb 2010) $ + Last modified: $Date: 2010-03-10 02:29:39 +0100 (Wed, 10 Mar 2010) $ </address> </body> |