[LAA] Don't hold on to LoopInfo in the analysis result

llvm-svn: 275325
This commit is contained in:
Adam Nemet 2016-07-13 22:18:48 +00:00
parent 150dcbabbc
commit 6616ad08f6
2 changed files with 5 additions and 7 deletions

View File

@ -522,7 +522,7 @@ public:
LoopAccessInfo(LoopAccessInfo &&LAI)
: PSE(std::move(LAI.PSE)), PtrRtChecking(std::move(LAI.PtrRtChecking)),
DepChecker(std::move(LAI.DepChecker)), TheLoop(LAI.TheLoop), DL(LAI.DL),
TLI(LAI.TLI), DT(LAI.DT), LI(LAI.LI), NumLoads(LAI.NumLoads),
TLI(LAI.TLI), DT(LAI.DT), NumLoads(LAI.NumLoads),
NumStores(LAI.NumStores), MaxSafeDepDistBytes(LAI.MaxSafeDepDistBytes),
CanVecMem(LAI.CanVecMem),
StoreToLoopInvariantAddress(LAI.StoreToLoopInvariantAddress),
@ -540,7 +540,6 @@ public:
DL = LAI.DL;
TLI = LAI.TLI;
DT = LAI.DT;
LI = LAI.LI;
NumLoads = LAI.NumLoads;
NumStores = LAI.NumStores;
MaxSafeDepDistBytes = LAI.MaxSafeDepDistBytes;
@ -637,7 +636,7 @@ public:
private:
/// \brief Analyze the loop.
void analyzeLoop(AliasAnalysis *AA);
void analyzeLoop(AliasAnalysis *AA, LoopInfo *LI);
/// \brief Check if the structure of the loop allows it to be analyzed by this
/// pass.
@ -665,7 +664,6 @@ private:
const DataLayout *DL;
const TargetLibraryInfo *TLI;
DominatorTree *DT;
LoopInfo *LI;
unsigned NumLoads;
unsigned NumStores;

View File

@ -1505,7 +1505,7 @@ bool LoopAccessInfo::canAnalyzeLoop() {
return true;
}
void LoopAccessInfo::analyzeLoop(AliasAnalysis *AA) {
void LoopAccessInfo::analyzeLoop(AliasAnalysis *AA, LoopInfo *LI) {
typedef SmallPtrSet<Value*, 16> ValueSet;
// Holds the Load and Store instructions.
@ -1921,11 +1921,11 @@ 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),
DL(&DL), TLI(TLI), DT(DT), LI(LI), NumLoads(0), NumStores(0),
DL(&DL), TLI(TLI), DT(DT), NumLoads(0), NumStores(0),
MaxSafeDepDistBytes(-1), CanVecMem(false),
StoreToLoopInvariantAddress(false) {
if (canAnalyzeLoop())
analyzeLoop(AA);
analyzeLoop(AA, LI);
}
void LoopAccessInfo::print(raw_ostream &OS, unsigned Depth) const {