<div class="doc_code"><pre>
static char ID;
- Hello() : FunctionPass((intptr_t)&ID) {}
+ Hello() : FunctionPass((intptr_t)&ID) {}
</pre></div><p>
<p> This declares pass identifier used by LLVM to identify pass. This allows LLVM to
functions. Because nothing is known about the behavior of <tt>ModulePass</tt>
subclasses, no optimization can be done for their execution. A module pass
can use function level passes (e.g. dominators) using getAnalysis interface
-<tt> getAnalysis<DominatorTree>(Function)</tt>. </p>
+<tt> getAnalysis<DominatorTree>(Function)</tt>. </p>
<p>To write a correct <tt>ModulePass</tt> subclass, derive from
<tt>ModulePass</tt> and overload the <tt>runOnModule</tt> method with the
<b>virtual bool</b> doInitialization(Loop *, LPPassManager &LPM);
</pre></div>
-The <tt>doInitialization</tt> method is designed to do simple initialization
+<p>The <tt>doInitialization</tt> method is designed to do simple initialization
type of stuff that does not depend on the functions being processed. The
<tt>doInitialization</tt> method call is not scheduled to overlap with any
other pass executions (thus it should be very fast). LPPassManager
}
</pre></div>
-In above example, runOnFunction for DominatorTree is called by pass manager
+<p>In above example, runOnFunction for DominatorTree is called by pass manager
before returning a reference to the desired pass.</p>
<p>
haven't had time (or multiprocessor machines, thus a reason) to implement this.
Despite that, we have kept the LLVM passes SMP ready, and you should too.</p>
+</div>
+
<!-- *********************************************************************** -->
<hr>
<address>