summaryrefslogtreecommitdiff
path: root/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
commit9e86f4364b912ae743490ba01d6989acfd12c046 (patch)
tree0eb6677f25fb104f50e85918f79d60b5665e0315 /docs
parent46151f1764ec61bfe3724e5db41e7675a9d90a96 (diff)
downloadllvm-9e86f4364b912ae743490ba01d6989acfd12c046.tar.gz
llvm-9e86f4364b912ae743490ba01d6989acfd12c046.tar.bz2
llvm-9e86f4364b912ae743490ba01d6989acfd12c046.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107776 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/AliasAnalysis.html21
1 files changed, 14 insertions, 7 deletions
diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html
index 8e6a7fd4d7..c6330a9469 100644
--- a/docs/AliasAnalysis.html
+++ b/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