Describe which dependencies are relevant to noalias, and document how
authorDan Gohman <gohman@apple.com>
Fri, 2 Jul 2010 23:46:54 +0000 (23:46 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 2 Jul 2010 23:46:54 +0000 (23:46 +0000)
AliasAnalyses have the choice to respect noalias.

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

docs/AliasAnalysis.html
docs/LangRef.html

index 5e931d77a8930fb8f8be5147af3e26c763b10637..591694a983cf3513c76f540d8a68bf43de0d93d7 100644 (file)
@@ -201,6 +201,11 @@ freed and reallocated between accesses through one pointer and accesses through
 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 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
 location, return MayAlias.</p>
index 7d8f14bca6b3035308128c606740c50272f99573..ad730deffb85daf29bb55fcb5a85e91b462cf633 100644 (file)
@@ -1053,7 +1053,12 @@ declare signext i8 @returns_signed_char()
   <dt><tt><b><a name="noalias">noalias</a></b></tt></dt>
   <dd>This indicates that pointer values
       <a href="#pointeraliasing"><i>based</i></a> on the argument or return
-      value do not alias pointer values which are not <i>based</i> on it.
+      value do not alias pointer values which are not <i>based</i> on it,
+      ignoring certain "irrelevant" dependencies.
+      For a call to the parent function, dependencies between memory
+      references from before or after the call and from those during the call
+      are "irrelevant" to the <tt>noalias</tt> keyword for the arguments and
+      return value used in that call.
       The caller shares the responsibility with the callee for ensuring that
       these requirements are met.
       For further details, please see the discussion of the NoAlias response in