summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-07-07 14:27:09 +0000
committerDan Gohman <gohman@apple.com>2010-07-07 14:27:09 +0000
commit00ef93258a63dc423bb33727b7d60da48fcd7ca1 (patch)
tree18df53c0f9af136d42a9eb01f07afcf811cdd15f /llvm/docs
parent28e88d8f64c9f817fb0d4ff265653671007db3af (diff)
downloadbcm5719-llvm-00ef93258a63dc423bb33727b7d60da48fcd7ca1.tar.gz
bcm5719-llvm-00ef93258a63dc423bb33727b7d60da48fcd7ca1.zip
Remove interprocedural-basic-aa and associated code. The AliasAnalysis
interface needs implementations to be consistent, so any code which wants to support different semantics must use a different interface. It's not currently worthwhile to add a new interface for this new concept. Document that AliasAnalysis doesn't support cross-function queries. llvm-svn: 107776
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/AliasAnalysis.html21
1 files changed, 14 insertions, 7 deletions
diff --git a/llvm/docs/AliasAnalysis.html b/llvm/docs/AliasAnalysis.html
index 8e6a7fd4d7c..c6330a94695 100644
--- a/llvm/docs/AliasAnalysis.html
+++ b/llvm/docs/AliasAnalysis.html
@@ -117,6 +117,11 @@ as the actual <tt>call</tt> or <tt>invoke</tt> instructions that performs the
call. The <tt>AliasAnalysis</tt> interface also exposes some helper methods
which allow you to get mod/ref information for arbitrary instructions.</p>
+<p>All <tt>AliasAnalysis</tt> interfaces require that in queries involving
+multiple values, values which are not
+<a href="LangRef.html#constants">constants</a> are all defined within the
+same function.</p>
+
</div>
<!-- ======================================================================= -->
@@ -181,9 +186,13 @@ that the accesses alias.</p>
</div>
<div class="doc_text">
-The <tt>alias</tt> method is the primary interface used to determine whether or
-not two memory objects alias each other. It takes two memory objects as input
-and returns MustAlias, MayAlias, or NoAlias as appropriate.
+<p>The <tt>alias</tt> method is the primary interface used to determine whether
+or not two memory objects alias each other. It takes two memory objects as
+input and returns MustAlias, MayAlias, or NoAlias as appropriate.</p>
+
+<p>Like all <tt>AliasAnalysis</tt> interfaces, the <tt>alias</tt> method requires
+that either the two pointer values be defined within the same function, or at
+least one of the values is a <a href="LangRef.html#constants">constant</a>.</p>
</div>
<!-- _______________________________________________________________________ -->
@@ -202,10 +211,8 @@ the other -- in this case, there is a dependence, but it's mediated by the free
and reallocation.</p>
<p>As an exception to this is with the
-<a href="LangRef.html#noalias"><tt>noalias</tt></a> keyword. AliasAnalysis
-implementations may choose to respect the <tt>noalias</tt> keyword and ignore
-the "irrelevant" dependencies, provided their clients do not need to be aware
-of these dependencies for correctness.</p>
+<a href="LangRef.html#noalias"><tt>noalias</tt></a> keyword; the "irrelevant"
+dependencies are ignored.</p>
<p>The MayAlias response is used whenever the two pointers might refer to the
same object. If the two memory objects overlap, but do not start at the same
OpenPOWER on IntegriCloud