Remove "ModulePasses requiring FunctionPasses" from the list of future

extensions.

llvm-svn: 36186
This commit is contained in:
Devang Patel 2007-04-17 00:17:11 +00:00
parent 62a8cbe594
commit f96c3625c2
1 changed files with 1 additions and 28 deletions

View File

@ -103,8 +103,6 @@
<li><a href="#future">Future extensions planned</a> <li><a href="#future">Future extensions planned</a>
<ul> <ul>
<li><a href="#SMP">Multithreaded LLVM</a></li> <li><a href="#SMP">Multithreaded LLVM</a></li>
<li><a href="#PassFunctionPass"><tt>ModulePass</tt>es requiring
<tt>FunctionPass</tt>es</a></li>
</ul></li> </ul></li>
</ol> </ol>
@ -1137,7 +1135,7 @@ For example:</p>
<div class="doc_code"><pre> <div class="doc_code"><pre>
bool ModuleLevelPass::runOnModule(Module &amp;M) { bool ModuleLevelPass::runOnModule(Module &amp;M) {
... ...
DominatorTree &amp;DT = getAnalysis&lt;DominatorTree&gt;(Function &amp;F); DominatorTree &amp;DT = getAnalysis&lt;DominatorTree&gt;(Func);
... ...
} }
</pre></div> </pre></div>
@ -1780,31 +1778,6 @@ places (for global resources). Although this is a simple extension, we simply
haven't had time (or multiprocessor machines, thus a reason) to implement this. 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> Despite that, we have kept the LLVM passes SMP ready, and you should too.</p>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection">
<a name="PassFunctionPass"><tt>ModulePass</tt>es requiring <tt>FunctionPass</tt>es</a>
</div>
<div class="doc_text">
<p>Currently it is illegal for a <a href="#ModulePass"><tt>ModulePass</tt></a>
to require a <a href="#FunctionPass"><tt>FunctionPass</tt></a>. This is because
there is only one instance of the <a
href="#FunctionPass"><tt>FunctionPass</tt></a> object ever created, thus nowhere
to store information for all of the functions in the program at the same time.
Although this has come up a couple of times before, this has always been worked
around by factoring one big complicated pass into a global and an
interprocedural part, both of which are distinct. In the future, it would be
nice to have this though.</p>
<p>Note that it is no problem for a <a
href="#FunctionPass"><tt>FunctionPass</tt></a> to require the results of a <a
href="#ModulePass"><tt>ModulePass</tt></a>, only the other way around.</p>
</div>
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<hr> <hr>
<address> <address>