diff options
Diffstat (limited to 'llvm/lib/Analysis')
| -rw-r--r-- | llvm/lib/Analysis/AliasAnalysis.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 37 | ||||
| -rw-r--r-- | llvm/lib/Analysis/IPA/CallGraph.cpp | 2 | 
3 files changed, 5 insertions, 42 deletions
diff --git a/llvm/lib/Analysis/AliasAnalysis.cpp b/llvm/lib/Analysis/AliasAnalysis.cpp index 9e1ae2a0d20..12ea937fa92 100644 --- a/llvm/lib/Analysis/AliasAnalysis.cpp +++ b/llvm/lib/Analysis/AliasAnalysis.cpp @@ -116,13 +116,13 @@ AliasAnalysis::getModRefInfo(StoreInst *S, Value *P, unsigned Size) {  AliasAnalysis::ModRefBehavior  AliasAnalysis::getModRefBehavior(CallSite CS,                                   std::vector<PointerAccessInfo> *Info) { -  if (CS.paramHasAttr(0, ParamAttr::ReadNone)) +  if (CS.doesNotAccessMemory())      // Can't do better than this.      return DoesNotAccessMemory;    ModRefBehavior MRB = UnknownModRefBehavior;    if (Function *F = CS.getCalledFunction())      MRB = getModRefBehavior(F, CS, Info); -  if (MRB != DoesNotAccessMemory && CS.paramHasAttr(0, ParamAttr::ReadOnly)) +  if (MRB != DoesNotAccessMemory && CS.onlyReadsMemory())      return OnlyReadsMemory;    return MRB;  } @@ -130,11 +130,11 @@ AliasAnalysis::getModRefBehavior(CallSite CS,  AliasAnalysis::ModRefBehavior  AliasAnalysis::getModRefBehavior(Function *F,                                   std::vector<PointerAccessInfo> *Info) { -  if (F->paramHasAttr(0, ParamAttr::ReadNone)) +  if (F->doesNotAccessMemory())      // Can't do better than this.      return DoesNotAccessMemory;    ModRefBehavior MRB = getModRefBehavior(F, CallSite(), Info); -  if (MRB != DoesNotAccessMemory && F->paramHasAttr(0, ParamAttr::ReadOnly)) +  if (MRB != DoesNotAccessMemory && F->onlyReadsMemory())      return OnlyReadsMemory;    return MRB;  } diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 5ec9afaec98..99d9499a526 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -25,8 +25,6 @@  #include "llvm/Pass.h"  #include "llvm/Target/TargetData.h"  #include "llvm/ADT/SmallVector.h" -#include "llvm/ADT/StringMap.h" -#include "llvm/ADT/BitVector.h"  #include "llvm/ADT/STLExtras.h"  #include "llvm/Support/Compiler.h"  #include "llvm/Support/GetElementPtrTypeIterator.h" @@ -116,9 +114,6 @@ namespace {      /// global) or not.      bool pointsToConstantMemory(const Value *P); -    virtual ModRefBehavior getModRefBehavior(Function *F, CallSite CS, -                                          std::vector<PointerAccessInfo> *Info); -    private:      // CheckGEPInstructions - Check two GEP instructions with known      // must-aliasing base pointers.  This checks to see if the index expressions @@ -810,37 +805,5 @@ BasicAliasAnalysis::CheckGEPInstructions(    return MayAlias;  } -static ManagedStatic<BitVector> NoMemoryIntrinsics; -static ManagedStatic<BitVector> OnlyReadsMemoryIntrinsics; - -AliasAnalysis::ModRefBehavior -BasicAliasAnalysis::getModRefBehavior(Function *F, CallSite CS, -                                      std::vector<PointerAccessInfo> *Info) { -  if (!F->isDeclaration()) return UnknownModRefBehavior; - -  static bool Initialized = false; -  if (!Initialized) { -    NoMemoryIntrinsics->resize(Intrinsic::num_intrinsics); -    OnlyReadsMemoryIntrinsics->resize(Intrinsic::num_intrinsics); -#define GET_MODREF_BEHAVIOR -#include "llvm/Intrinsics.gen" -#undef GET_MODREF_BEHAVIOR -     -    Initialized = true; -  } - -  // If this is an intrinsic, we can use lookup tables -  if (unsigned id = F->getIntrinsicID()) { -    if (NoMemoryIntrinsics->test(id)) -      return DoesNotAccessMemory; -    if (OnlyReadsMemoryIntrinsics->test(id)) -      return OnlyReadsMemory; - -    return UnknownModRefBehavior; -  } - -  return UnknownModRefBehavior; -} -  // Make sure that anything that uses AliasAnalysis pulls in this file...  DEFINING_FILE_FOR(BasicAliasAnalysis) diff --git a/llvm/lib/Analysis/IPA/CallGraph.cpp b/llvm/lib/Analysis/IPA/CallGraph.cpp index 5f9850c93dc..e26ad7a7aaf 100644 --- a/llvm/lib/Analysis/IPA/CallGraph.cpp +++ b/llvm/lib/Analysis/IPA/CallGraph.cpp @@ -136,7 +136,7 @@ private:      // If this function is not defined in this translation unit, it could call      // anything. -    if (F->isDeclaration() && !F->getIntrinsicID()) +    if (F->isDeclaration() && !F->isIntrinsic())        Node->addCalledFunction(CallSite(), CallsExternalNode);      // Loop over all of the users of the function... looking for callers...  | 

