mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
document new pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14471 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3905b57442
commit
100a4f88ec
@ -690,6 +690,27 @@ aggressive local analysis that "knows" many important facts:</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="globalsmodref">The <tt>-globalsmodref-aa</tt> pass</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>This pass implements a simple context-sensitive mod/ref and alias analysis
|
||||
for internal global variables that don't "have their address taken". If a
|
||||
global does not have its address taken, the pass knows that no pointers alias
|
||||
the global.
|
||||
</p>
|
||||
|
||||
<p>The real power of this pass is that it provides context-sensitive mod/ref
|
||||
information for call instructions. This allows the optimizer to know that
|
||||
calls to a function do not clobber or read the value of the global, allowing
|
||||
loads and stores to be eliminated.</p>
|
||||
|
||||
<p>Note that this pass is somewhat limited in its scope (only support
|
||||
non-address taken globals), but is very quick analysis.</p>
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
|
Loading…
Reference in New Issue
Block a user