summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-07-13 22:36:27 +0000
committerAdam Nemet <anemet@apple.com>2016-07-13 22:36:27 +0000
commite12bf897665fed9e483803389b374996cc463f0e (patch)
tree54841511a47ec9abc959bc4807626470fe765e75
parent88a264d59fe82d3e15edf38d51100c8411e7dfeb (diff)
[LAA] Don't hold on to TargetLibraryInfo in the analysis result
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275334 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Analysis/LoopAccessAnalysis.h12
-rw-r--r--lib/Analysis/LoopAccessAnalysis.cpp7
2 files changed, 9 insertions, 10 deletions
diff --git a/include/llvm/Analysis/LoopAccessAnalysis.h b/include/llvm/Analysis/LoopAccessAnalysis.h
index 7ba7a4906c2..a376feb7c4e 100644
--- a/include/llvm/Analysis/LoopAccessAnalysis.h
+++ b/include/llvm/Analysis/LoopAccessAnalysis.h
@@ -520,10 +520,9 @@ public:
// LoopAccessInfo(LoopAccessInfo &&LAI) = default;
LoopAccessInfo(LoopAccessInfo &&LAI)
: PSE(std::move(LAI.PSE)), PtrRtChecking(std::move(LAI.PtrRtChecking)),
- DepChecker(std::move(LAI.DepChecker)), TheLoop(LAI.TheLoop),
- TLI(LAI.TLI), DT(LAI.DT), NumLoads(LAI.NumLoads),
- NumStores(LAI.NumStores), MaxSafeDepDistBytes(LAI.MaxSafeDepDistBytes),
- CanVecMem(LAI.CanVecMem),
+ DepChecker(std::move(LAI.DepChecker)), TheLoop(LAI.TheLoop), DT(LAI.DT),
+ NumLoads(LAI.NumLoads), NumStores(LAI.NumStores),
+ MaxSafeDepDistBytes(LAI.MaxSafeDepDistBytes), CanVecMem(LAI.CanVecMem),
StoreToLoopInvariantAddress(LAI.StoreToLoopInvariantAddress),
Report(std::move(LAI.Report)),
SymbolicStrides(std::move(LAI.SymbolicStrides)),
@@ -536,7 +535,6 @@ public:
PtrRtChecking = std::move(LAI.PtrRtChecking);
DepChecker = std::move(LAI.DepChecker);
TheLoop = LAI.TheLoop;
- TLI = LAI.TLI;
DT = LAI.DT;
NumLoads = LAI.NumLoads;
NumStores = LAI.NumStores;
@@ -634,7 +632,8 @@ public:
private:
/// \brief Analyze the loop.
- void analyzeLoop(AliasAnalysis *AA, LoopInfo *LI);
+ void analyzeLoop(AliasAnalysis *AA, LoopInfo *LI,
+ const TargetLibraryInfo *TLI);
/// \brief Check if the structure of the loop allows it to be analyzed by this
/// pass.
@@ -659,7 +658,6 @@ private:
std::unique_ptr<MemoryDepChecker> DepChecker;
Loop *TheLoop;
- const TargetLibraryInfo *TLI;
DominatorTree *DT;
unsigned NumLoads;
diff --git a/lib/Analysis/LoopAccessAnalysis.cpp b/lib/Analysis/LoopAccessAnalysis.cpp
index 4f0d8ad2734..10e963ba1cf 100644
--- a/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/lib/Analysis/LoopAccessAnalysis.cpp
@@ -1505,7 +1505,8 @@ bool LoopAccessInfo::canAnalyzeLoop() {
return true;
}
-void LoopAccessInfo::analyzeLoop(AliasAnalysis *AA, LoopInfo *LI) {
+void LoopAccessInfo::analyzeLoop(AliasAnalysis *AA, LoopInfo *LI,
+ const TargetLibraryInfo *TLI) {
typedef SmallPtrSet<Value*, 16> ValueSet;
// Holds the Load and Store instructions.
@@ -1921,10 +1922,10 @@ LoopAccessInfo::LoopAccessInfo(Loop *L, ScalarEvolution *SE,
: PSE(llvm::make_unique<PredicatedScalarEvolution>(*SE, *L)),
PtrRtChecking(llvm::make_unique<RuntimePointerChecking>(SE)),
DepChecker(llvm::make_unique<MemoryDepChecker>(*PSE, L)), TheLoop(L),
- TLI(TLI), DT(DT), NumLoads(0), NumStores(0), MaxSafeDepDistBytes(-1),
+ DT(DT), NumLoads(0), NumStores(0), MaxSafeDepDistBytes(-1),
CanVecMem(false), StoreToLoopInvariantAddress(false) {
if (canAnalyzeLoop())
- analyzeLoop(AA, LI);
+ analyzeLoop(AA, LI, TLI);
}
void LoopAccessInfo::print(raw_ostream &OS, unsigned Depth) const {