Document that BasicAA respects noalias, while InterproceduralBasicAA
authorDan Gohman <gohman@apple.com>
Fri, 2 Jul 2010 23:52:36 +0000 (23:52 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 2 Jul 2010 23:52:36 +0000 (23:52 +0000)
does not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107546 91177308-0d34-0410-b5e6-96231b3b80d8

docs/AliasAnalysis.html
include/llvm/Analysis/Passes.h

index 591694a983cf3513c76f540d8a68bf43de0d93d7..8e6a7fd4d7c606fba2ed5320227b0dc51e942b14 100644 (file)
@@ -203,8 +203,9 @@ 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 ignore the "irrelevant" dependencies, provided
-their clients do not need to be aware of these dependencies for correctness.</p>
+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>
 
 <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
index a81cb8733f4b8f17c203b90cf94cc0050349743e..1020e07e0ea4c16ad7d34d3291adcc0697c9389e 100644 (file)
@@ -67,7 +67,9 @@ namespace llvm {
   //===--------------------------------------------------------------------===//
   //
   // createBasicAliasAnalysisPass - This pass implements the default alias
-  // analysis.
+  // analysis.  This analysis respects the noalias attribute, so it is not
+  // suitable for some interprocedural uses (see the discussion of noalias
+  // in AliasAnalysis.html for details).
   //
   ImmutablePass *createBasicAliasAnalysisPass();
 
@@ -75,7 +77,8 @@ namespace llvm {
   //
   // createInterproceduralBasicAliasAnalysisPass - This pass is similar to
   // baiscaa, except that it properly supports queries to values which live
-  // in different functions.
+  // in different functions.  Unlike the regular BasicAliasAnalysis, this
+  // implementation does not respect the noalias attribute.
   //
   ImmutablePass *createInterproceduralBasicAliasAnalysisPass();