aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
index 058612149a94..aaf586173e44 100644
--- a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
@@ -99,12 +99,11 @@ struct StoreToLoadForwardingCandidate {
Loop *L) const {
Value *LoadPtr = Load->getPointerOperand();
Value *StorePtr = Store->getPointerOperand();
- Type *LoadPtrType = LoadPtr->getType();
- Type *LoadType = LoadPtrType->getPointerElementType();
+ Type *LoadType = getLoadStoreType(Load);
- assert(LoadPtrType->getPointerAddressSpace() ==
+ assert(LoadPtr->getType()->getPointerAddressSpace() ==
StorePtr->getType()->getPointerAddressSpace() &&
- LoadType == StorePtr->getType()->getPointerElementType() &&
+ LoadType == getLoadStoreType(Store) &&
"Should be a known dependence");
// Currently we only support accesses with unit stride. FIXME: we should be
@@ -664,10 +663,11 @@ public:
auto *BFI = (PSI && PSI->hasProfileSummary()) ?
&getAnalysis<LazyBlockFrequencyInfoPass>().getBFI() :
nullptr;
+ auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
// Process each loop nest in the function.
return eliminateLoadsAcrossLoops(
- F, LI, DT, BFI, PSI, /*SE*/ nullptr, /*AC*/ nullptr,
+ F, LI, DT, BFI, PSI, SE, /*AC*/ nullptr,
[&LAA](Loop &L) -> const LoopAccessInfo & { return LAA.getInfo(&L); });
}