diff options
-rw-r--r-- | docs/LangRef.html | 6 | ||||
-rw-r--r-- | lib/Analysis/BasicAliasAnalysis.cpp | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index bc3b40b460..b469022b76 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -892,9 +892,9 @@ declare signext i8 @returns_signed_char() <dt><tt>noalias</tt></dt> <dd>This indicates that the pointer does not alias any global or any other parameter. The caller is responsible for ensuring that this is the - case. Additionally, on a function return value <tt>noalias</tt> indicates - that the pointer does not alias the return value from other calls of - itself or other noalias functions.</dd> + case. On a function return value, <tt>noalias</tt> additionally indicates + that the pointer does not alias any other pointers visible to the + caller.</dd> <dt><tt>nest</tt></dt> <dd>This indicates that the pointer parameter can be excised using the diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index e9c6490ebb..5b65fb1199 100644 --- a/lib/Analysis/BasicAliasAnalysis.cpp +++ b/lib/Analysis/BasicAliasAnalysis.cpp @@ -383,9 +383,9 @@ BasicAliasAnalysis::alias(const Value *V1, unsigned V1Size, if (isIdentifiedObject(O1) && isIdentifiedObject(O2)) return NoAlias; - // Local allocations can't alias with arguments or noalias functions. - if ((isa<AllocationInst>(O1) && (isa<Argument>(O2) || isNoAliasCall(O2))) || - (isa<AllocationInst>(O2) && (isa<Argument>(O1) || isNoAliasCall(O1)))) + // Arguments can't alias with local allocations or noalias calls. + if ((isa<Argument>(O1) && (isa<AllocationInst>(O2) || isNoAliasCall(O2))) || + (isa<Argument>(O2) && (isa<AllocationInst>(O1) || isNoAliasCall(O1)))) return NoAlias; // Most objects can't alias null. |