From 43b8fd728b889f15ea4c65ca957a7420ce2905cd Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 2 Jul 2010 23:52:36 +0000 Subject: [PATCH] Document that BasicAA respects noalias, while InterproceduralBasicAA does not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107546 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/AliasAnalysis.html | 5 +++-- include/llvm/Analysis/Passes.h | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html index 591694a983c..8e6a7fd4d7c 100644 --- a/docs/AliasAnalysis.html +++ b/docs/AliasAnalysis.html @@ -203,8 +203,9 @@ and reallocation.

As an exception to this is with the noalias keyword. AliasAnalysis -implementations may choose to ignore the "irrelevant" dependencies, provided -their clients do not need to be aware of these dependencies for correctness.

+implementations may choose to respect the noalias keyword and ignore +the "irrelevant" dependencies, provided their clients do not need to be aware +of these dependencies for correctness.

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 diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h index a81cb8733f4..1020e07e0ea 100644 --- a/include/llvm/Analysis/Passes.h +++ b/include/llvm/Analysis/Passes.h @@ -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();