// 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)),
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;
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.
std::unique_ptr<MemoryDepChecker> DepChecker;
Loop *TheLoop;
- const TargetLibraryInfo *TLI;
DominatorTree *DT;
unsigned NumLoads;
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.
: 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 {