diff options
Diffstat (limited to 'docs/AliasAnalysis.html')
-rw-r--r-- | docs/AliasAnalysis.html | 172 |
1 files changed, 86 insertions, 86 deletions
diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html index c1603be129..bed3aceeb5 100644 --- a/docs/AliasAnalysis.html +++ b/docs/AliasAnalysis.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Alias Analysis Infrastructure -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -59,9 +59,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -96,9 +96,9 @@ know</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="overview"><tt>AliasAnalysis</tt> Class Overview</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -125,9 +125,9 @@ same function.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="pointers">Representation of Pointers</a> -</div> +</h3> <div class="doc_text"> @@ -181,9 +181,9 @@ that the accesses alias.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="alias">The <tt>alias</tt> method</a> -</div> +</h3> <div class="doc_text"> <p>The <tt>alias</tt> method is the primary interface used to determine whether @@ -197,9 +197,9 @@ least one of the values is a <a href="LangRef.html#constants">constant</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="MustMayNo">Must, May, and No Alias Responses</a> -</div> +</h4> <div class="doc_text"> <p>The NoAlias response may be used when there is never an immediate dependence @@ -228,9 +228,9 @@ implies that the pointers compare equal.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ModRefInfo">The <tt>getModRefInfo</tt> methods</a> -</div> +</h3> <div class="doc_text"> @@ -250,9 +250,9 @@ memory written to by CS2. Note that this relation is not commutative.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="OtherItfs">Other useful <tt>AliasAnalysis</tt> methods</a> -</div> +</h3> <div class="doc_text"> @@ -264,9 +264,9 @@ analysis implementations and can be put to good use by various clients. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> The <tt>pointsToConstantMemory</tt> method -</div> +</h4> <div class="doc_text"> @@ -279,10 +279,10 @@ memory location to be modified.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="simplemodref">The <tt>doesNotAccessMemory</tt> and <tt>onlyReadsMemory</tt> methods</a> -</div> +</h4> <div class="doc_text"> @@ -308,9 +308,9 @@ functions that satisfy the <tt>doesNotAccessMemory</tt> method also satisfies </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="writingnew">Writing a new <tt>AliasAnalysis</tt> Implementation</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -324,9 +324,9 @@ implementations</a> included with LLVM.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="passsubclasses">Different Pass styles</a> -</div> +</h3> <div class="doc_text"> @@ -352,9 +352,9 @@ solve:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="requiredcalls">Required initialization calls</a> -</div> +</h3> <div class="doc_text"> @@ -393,9 +393,9 @@ bool run(Module &M) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="interfaces">Interfaces which may be specified</a> -</div> +</h3> <div class="doc_text"> @@ -412,9 +412,9 @@ implementing, you just override the interfaces you can improve.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="chaining"><tt>AliasAnalysis</tt> chaining behavior</a> -</div> +</h3> <div class="doc_text"> @@ -451,9 +451,9 @@ updated.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="updating">Updating analysis results for transformations</a> -</div> +</h3> <div class="doc_text"> <p> @@ -474,7 +474,7 @@ sure to call these interfaces appropriately. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>deleteValue</tt> method</div> +<h4>The <tt>deleteValue</tt> method</h4> <div class="doc_text"> The <tt>deleteValue</tt> method is called by transformations when they remove an @@ -485,7 +485,7 @@ any entries for the specified value, if they exist. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>copyValue</tt> method</div> +<h4>The <tt>copyValue</tt> method</h4> <div class="doc_text"> The <tt>copyValue</tt> method is used when a new value is introduced into the @@ -496,7 +496,7 @@ new value has exactly the same properties as the value being copied. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>replaceWithNewValue</tt> method</div> +<h4>The <tt>replaceWithNewValue</tt> method</h4> <div class="doc_text"> This method is a simple helper method that is provided to make clients easier to @@ -506,7 +506,7 @@ analysis implementations. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>addEscapingUse</tt> method</div> +<h4>The <tt>addEscapingUse</tt> method</h4> <div class="doc_text"> <p>The <tt>addEscapingUse</tt> method is used when the uses of a pointer @@ -528,9 +528,9 @@ uses below:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="implefficiency">Efficiency Issues</a> -</div> +</h3> <div class="doc_text"> @@ -544,9 +544,9 @@ method as possible (within reason).</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="limitations">Limitations</a> -</div> +</h3> <div class="doc_text"> @@ -617,9 +617,9 @@ from itself.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="using">Using alias analysis results</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -630,9 +630,9 @@ preference, these are...</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="memdep">Using the <tt>MemoryDependenceAnalysis</tt> Pass</a> -</div> +</h3> <div class="doc_text"> @@ -645,9 +645,9 @@ efficient, and is used by Dead Store Elimination, GVN, and memcpy optimizations. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ast">Using the <tt>AliasSetTracker</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -681,9 +681,9 @@ pointer argument is loop-invariant.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> The AliasSetTracker implementation -</div> +</h4> <div class="doc_text"> @@ -707,9 +707,9 @@ are.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="direct">Using the <tt>AliasAnalysis</tt> interface directly</a> -</div> +</h3> <div class="doc_text"> @@ -722,9 +722,9 @@ best precision and efficiency.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="exist">Existing alias analysis implementations and clients</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -738,9 +738,9 @@ for monitoring and evaluating different implementations.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="impls">Available <tt>AliasAnalysis</tt> implementations</a> -</div> +</h3> <div class="doc_text"> @@ -752,9 +752,9 @@ href="#chaining">chain</a> to other alias analysis implementations.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="no-aa">The <tt>-no-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -766,9 +766,9 @@ problem.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="basic-aa">The <tt>-basicaa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -794,9 +794,9 @@ many important facts:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="globalsmodref">The <tt>-globalsmodref-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -818,9 +818,9 @@ non-address taken globals), but is very quick analysis.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="steens-aa">The <tt>-steens-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -841,9 +841,9 @@ module, it is not part of the LLVM core.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ds-aa">The <tt>-ds-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -864,9 +864,9 @@ module, it is not part of the LLVM core.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scev-aa">The <tt>-scev-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -878,9 +878,9 @@ and loop induction variables than other alias analyses have.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aliasanalysis-xforms">Alias analysis driven transformations</a> -</div> +</h3> <div class="doc_text"> LLVM includes several alias-analysis driven transformations which can be used @@ -888,9 +888,9 @@ with any of the implementations above. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="adce">The <tt>-adce</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -902,9 +902,9 @@ not have side-effects and are not used.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="licm">The <tt>-licm</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -927,9 +927,9 @@ no may aliases to the loaded/stored memory location.</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="argpromotion">The <tt>-argpromotion</tt> pass</a> -</div> +</h4> <div class="doc_text"> <p> @@ -942,10 +942,10 @@ pointer.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="gvn">The <tt>-gvn</tt>, <tt>-memcpyopt</tt>, and <tt>-dse</tt> passes</a> -</div> +</h4> <div class="doc_text"> @@ -955,10 +955,10 @@ pointer.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aliasanalysis-debug">Clients for debugging and evaluation of implementations</a> -</div> +</h3> <div class="doc_text"> @@ -969,9 +969,9 @@ implementations. You can use them with commands like '<tt>opt -ds-aa </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="print-alias-sets">The <tt>-print-alias-sets</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -990,9 +990,9 @@ the <tt>AliasSetTracker</tt> class. To use it, use something like:</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="count-aa">The <tt>-count-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -1014,9 +1014,9 @@ when debugging a transformation or an alias analysis implementation.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="aa-eval">The <tt>-aa-eval</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -1029,9 +1029,9 @@ algorithm will have a lower number of may aliases).</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="memdep">Memory Dependence Analysis</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> |