fix typo noticed by Joshua Pennington
[oota-llvm.git] / docs / AliasAnalysis.html
index 25a27f36e46f1c2f2acacd48e685d27356fe8483..6663f0caa75fb1d7f1a4b49ca24c8225872677fa 100644 (file)
@@ -50,6 +50,7 @@
     implementations</a></li>
     </ul>
   </li>
+  <li><a href="#memdep">Memory Dependence Analysis</a></li>
 </ol>
 
 <div class="doc_author">
@@ -70,12 +71,12 @@ memory.  There are many different algorithms for alias analysis and many
 different ways of classifying them: flow-sensitive vs flow-insensitive,
 context-sensitive vs context-insensitive, field-sensitive vs field-insensitive,
 unification-based vs subset-based, etc.  Traditionally, alias analyses respond
-to a query with a <a href="#MustNoMay">Must, May, or No</a> alias response,
+to a query with a <a href="#MustMayNo">Must, May, or No</a> alias response,
 indicating that two pointers always point to the same object, might point to the
 same object, or are known to never point to the same object.</p>
 
 <p>The LLVM <a
-href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
+href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
 class is the primary interface used by clients and implementations of alias
 analyses in the LLVM system.  This class is the common interface between clients
 of alias analysis information and the implementations providing it, and is
@@ -102,7 +103,7 @@ know</a>.</p>
 <div class="doc_text">
 
 <p>The <a
-href="http://llvm.cs.uiuc.edu/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
+href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html"><tt>AliasAnalysis</tt></a>
 class defines the interface that the various alias analysis implementations
 should support.  This class exports two important enums: <tt>AliasResult</tt>
 and <tt>ModRefResult</tt> which represent the result of an alias query or a
@@ -755,6 +756,9 @@ field-<b>sensitive</b>" version of Steensgaard's algorithm using the Data
 Structure Analysis framework.  This gives it substantially more precision than
 the standard algorithm while maintaining excellent analysis scalability.</p>
 
+<p>Note that <tt>-steens-aa</tt> is available in the optional "poolalloc"
+module, it is not part of the LLVM core.</p>
+
 </div>
 
 <!-- _______________________________________________________________________ -->
@@ -775,6 +779,9 @@ queries, and can provide context-sensitive mod/ref information as well.  The
 only major facility not implemented so far is support for must-alias
 information.</p>
 
+<p>Note that <tt>-ds-aa</tt> is available in the optional "poolalloc"
+module, it is not part of the LLVM core.</p>
+
 </div>
 
 
@@ -941,6 +948,24 @@ algorithm will have a lower number of may aliases).</p>
 
 </div>
 
+<!-- *********************************************************************** -->
+<div class="doc_section">
+  <a name="memdep">Memory Dependence Analysis</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="doc_text">
+
+<p>If you're just looking to be a client of alias analysis information, consider
+using the Memory Dependence Analysis interface instead.  MemDep is a lazy, 
+caching layer on top of alias analysis that is able to answer the question of
+what preceding memory operations a given instruction depends on, either at an
+intra- or inter-block level.  Because of its laziness and caching 
+policy, using MemDep can be a significant performance win over accessing alias
+analysis directly.</p>
+
+</div>
+
 <!-- *********************************************************************** -->
 
 <hr>
@@ -951,7 +976,7 @@ algorithm will have a lower number of may aliases).</p>
   src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
 
   <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
-  <a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
+  <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
   Last modified: $Date$
 </address>