From 43b8fd728b889f15ea4c65ca957a7420ce2905cd Mon Sep 17 00:00:00 2001
From: Dan Gohman
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();