Index: include/llvm/Analysis/LoopAccessAnalysis.h =================================================================== --- include/llvm/Analysis/LoopAccessAnalysis.h +++ include/llvm/Analysis/LoopAccessAnalysis.h @@ -93,7 +93,7 @@ class MemoryDepChecker { public: typedef PointerIntPair MemAccessInfo; - typedef SmallPtrSet MemAccessInfoSet; + typedef SetVector MemAccessInfoSet; /// \brief Set of potential dependent memory accesses. typedef EquivalenceClasses DepCandidates; Index: lib/Analysis/LoopAccessAnalysis.cpp =================================================================== --- lib/Analysis/LoopAccessAnalysis.cpp +++ lib/Analysis/LoopAccessAnalysis.cpp @@ -498,7 +498,7 @@ public: /// \brief Read or write access location. typedef PointerIntPair MemAccessInfo; - typedef SmallPtrSet MemAccessInfoSet; + typedef SetVector MemAccessInfoSet; AccessAnalysis(const DataLayout &Dl, AliasAnalysis *AA, LoopInfo *LI, MemoryDepChecker::DepCandidates &DA, @@ -1565,7 +1565,7 @@ // Check every access pair. while (AI != AE) { - CheckDeps.erase(*AI); + CheckDeps.remove(*AI); EquivalenceClasses::member_iterator OI = std::next(AI); while (OI != AE) { // Check every accessing instruction pair in program order.