[llvm] [SCEVExp] Get DL from SE, strip constructor arg (NFC) (PR #171823)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 11 04:54:04 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-arm
Author: Ramkumar Ramachandra (artagnon)
<details>
<summary>Changes</summary>
---
Patch is 33.37 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/171823.diff
24 Files Affected:
- (modified) llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h (+6-6)
- (modified) llvm/lib/CodeGen/HardwareLoops.cpp (+15-25)
- (modified) llvm/lib/Target/ARM/MVETailPredication.cpp (+1-2)
- (modified) llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (+1-1)
- (modified) llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp (+2-6)
- (modified) llvm/lib/Transforms/Scalar/IndVarSimplify.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp (+1-2)
- (modified) llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/LoopFlatten.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp (+4-5)
- (modified) llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp (+1-2)
- (modified) llvm/lib/Transforms/Scalar/LoopPredication.cpp (+1-1)
- (modified) llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp (+3-6)
- (modified) llvm/lib/Transforms/Scalar/LoopTermFold.cpp (+2-4)
- (modified) llvm/lib/Transforms/Scalar/NaryReassociate.cpp (+1-1)
- (modified) llvm/lib/Transforms/Utils/LoopConstrainer.cpp (+2-3)
- (modified) llvm/lib/Transforms/Utils/LoopPeel.cpp (+3-3)
- (modified) llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp (+1-2)
- (modified) llvm/lib/Transforms/Utils/LoopVersioning.cpp (+2-5)
- (modified) llvm/lib/Transforms/Utils/SimplifyIndVar.cpp (+1-1)
- (modified) llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (+5-5)
- (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (+1-1)
- (modified) llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp (+1-2)
- (modified) llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp (+15-15)
``````````diff
diff --git a/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h b/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
index 310118078695c..104ddf5e9daf4 100644
--- a/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
+++ b/llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
@@ -183,12 +183,12 @@ class SCEVExpander : public SCEVVisitor<SCEVExpander, Value *> {
public:
/// Construct a SCEVExpander in "canonical" mode.
- explicit SCEVExpander(ScalarEvolution &se, const DataLayout &DL,
- const char *name, bool PreserveLCSSA = true)
- : SE(se), DL(DL), IVName(name), PreserveLCSSA(PreserveLCSSA),
- IVIncInsertLoop(nullptr), IVIncInsertPos(nullptr), CanonicalMode(true),
- LSRMode(false),
- Builder(se.getContext(), InstSimplifyFolder(DL),
+ explicit SCEVExpander(ScalarEvolution &SE, const char *Name,
+ bool PreserveLCSSA = true)
+ : SE(SE), DL(SE.getDataLayout()), IVName(Name),
+ PreserveLCSSA(PreserveLCSSA), IVIncInsertLoop(nullptr),
+ IVIncInsertPos(nullptr), CanonicalMode(true), LSRMode(false),
+ Builder(SE.getContext(), InstSimplifyFolder(DL),
IRBuilderCallbackInserter(
[this](Instruction *I) { rememberInstruction(I); })) {
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
diff --git a/llvm/lib/CodeGen/HardwareLoops.cpp b/llvm/lib/CodeGen/HardwareLoops.cpp
index 628d8cc8621f2..7a2340a9313f6 100644
--- a/llvm/lib/CodeGen/HardwareLoops.cpp
+++ b/llvm/lib/CodeGen/HardwareLoops.cpp
@@ -143,12 +143,11 @@ namespace {
class HardwareLoopsImpl {
public:
HardwareLoopsImpl(ScalarEvolution &SE, LoopInfo &LI, bool PreserveLCSSA,
- DominatorTree &DT, const DataLayout &DL,
- const TargetTransformInfo &TTI, TargetLibraryInfo *TLI,
- AssumptionCache &AC, OptimizationRemarkEmitter *ORE,
- HardwareLoopOptions &Opts)
- : SE(SE), LI(LI), PreserveLCSSA(PreserveLCSSA), DT(DT), DL(DL), TTI(TTI),
- TLI(TLI), AC(AC), ORE(ORE), Opts(Opts) { }
+ DominatorTree &DT, const TargetTransformInfo &TTI,
+ TargetLibraryInfo *TLI, AssumptionCache &AC,
+ OptimizationRemarkEmitter *ORE, HardwareLoopOptions &Opts)
+ : SE(SE), LI(LI), PreserveLCSSA(PreserveLCSSA), DT(DT), TTI(TTI),
+ TLI(TLI), AC(AC), ORE(ORE), Opts(Opts) {}
bool run(Function &F);
@@ -164,7 +163,6 @@ namespace {
LoopInfo &LI;
bool PreserveLCSSA;
DominatorTree &DT;
- const DataLayout &DL;
const TargetTransformInfo &TTI;
TargetLibraryInfo *TLI = nullptr;
AssumptionCache &AC;
@@ -197,22 +195,17 @@ namespace {
public:
HardwareLoop(HardwareLoopInfo &Info, ScalarEvolution &SE,
- const DataLayout &DL,
- OptimizationRemarkEmitter *ORE,
- HardwareLoopOptions &Opts) :
- SE(SE), DL(DL), ORE(ORE), Opts(Opts), L(Info.L), M(L->getHeader()->getModule()),
- ExitCount(Info.ExitCount),
- CountType(Info.CountType),
- ExitBranch(Info.ExitBranch),
- LoopDecrement(Info.LoopDecrement),
- UsePHICounter(Info.CounterInReg),
- UseLoopGuard(Info.PerformEntryTest) { }
+ OptimizationRemarkEmitter *ORE, HardwareLoopOptions &Opts)
+ : SE(SE), ORE(ORE), Opts(Opts), L(Info.L),
+ M(L->getHeader()->getModule()), ExitCount(Info.ExitCount),
+ CountType(Info.CountType), ExitBranch(Info.ExitBranch),
+ LoopDecrement(Info.LoopDecrement), UsePHICounter(Info.CounterInReg),
+ UseLoopGuard(Info.PerformEntryTest) {}
void Create();
private:
ScalarEvolution &SE;
- const DataLayout &DL;
OptimizationRemarkEmitter *ORE = nullptr;
HardwareLoopOptions &Opts;
Loop *L = nullptr;
@@ -239,7 +232,6 @@ bool HardwareLoopsLegacy::runOnFunction(Function &F) {
auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
auto &TTI = getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
- auto &DL = F.getDataLayout();
auto *ORE = &getAnalysis<OptimizationRemarkEmitterWrapperPass>().getORE();
auto *TLIP = getAnalysisIfAvailable<TargetLibraryInfoWrapperPass>();
auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
@@ -260,8 +252,7 @@ bool HardwareLoopsLegacy::runOnFunction(Function &F) {
if (CounterBitWidth.getNumOccurrences())
Opts.setCounterBitwidth(CounterBitWidth);
- HardwareLoopsImpl Impl(SE, LI, PreserveLCSSA, DT, DL, TTI, TLI, AC, ORE,
- Opts);
+ HardwareLoopsImpl Impl(SE, LI, PreserveLCSSA, DT, TTI, TLI, AC, ORE, Opts);
return Impl.run(F);
}
@@ -274,9 +265,8 @@ PreservedAnalyses HardwareLoopsPass::run(Function &F,
auto *TLI = &AM.getResult<TargetLibraryAnalysis>(F);
auto &AC = AM.getResult<AssumptionAnalysis>(F);
auto *ORE = &AM.getResult<OptimizationRemarkEmitterAnalysis>(F);
- auto &DL = F.getDataLayout();
- HardwareLoopsImpl Impl(SE, LI, true, DT, DL, TTI, TLI, AC, ORE, Opts);
+ HardwareLoopsImpl Impl(SE, LI, true, DT, TTI, TLI, AC, ORE, Opts);
bool Changed = Impl.run(F);
if (!Changed)
return PreservedAnalyses::all();
@@ -365,7 +355,7 @@ bool HardwareLoopsImpl::TryConvertLoop(HardwareLoopInfo &HWLoopInfo) {
if (!Preheader)
return false;
- HardwareLoop HWLoop(HWLoopInfo, SE, DL, ORE, Opts);
+ HardwareLoop HWLoop(HWLoopInfo, SE, ORE, Opts);
HWLoop.Create();
++NumHWLoops;
return true;
@@ -444,7 +434,7 @@ Value *HardwareLoop::InitLoopCount() {
// Can we replace a conditional branch with an intrinsic that sets the
// loop counter and tests that is not zero?
- SCEVExpander SCEVE(SE, DL, "loopcnt");
+ SCEVExpander SCEVE(SE, "loopcnt");
if (!ExitCount->getType()->isPointerTy() &&
ExitCount->getType() != CountType)
ExitCount = SE.getZeroExtendExpr(ExitCount, CountType);
diff --git a/llvm/lib/Target/ARM/MVETailPredication.cpp b/llvm/lib/Target/ARM/MVETailPredication.cpp
index 50f4042102bf4..f9f01163846ba 100644
--- a/llvm/lib/Target/ARM/MVETailPredication.cpp
+++ b/llvm/lib/Target/ARM/MVETailPredication.cpp
@@ -435,8 +435,7 @@ bool MVETailPredication::TryConvertActiveLaneMask(Value *TripCount) {
}
LLVM_DEBUG(dbgs() << "ARM TP: Safe to insert VCTP. Start is " << *StartSCEV
<< "\n");
- SCEVExpander Expander(*SE, L->getHeader()->getDataLayout(),
- "start");
+ SCEVExpander Expander(*SE, "start");
Instruction *Ins = L->getLoopPreheader()->getTerminator();
Value *Start = Expander.expandCodeFor(StartSCEV, StartSCEV->getType(), Ins);
LLVM_DEBUG(dbgs() << "ARM TP: Created start value " << *Start << "\n");
diff --git a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
index 1057b88530f40..a55f7970ba2e1 100644
--- a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
@@ -2021,7 +2021,7 @@ bool HexagonLoopIdiomRecognize::processCopyingStore(Loop *CurLoop,
BasicBlock *Preheader = CurLoop->getLoopPreheader();
Instruction *ExpPt = Preheader->getTerminator();
IRBuilder<> Builder(ExpPt);
- SCEVExpander Expander(*SE, *DL, "hexagon-loop-idiom");
+ SCEVExpander Expander(*SE, "hexagon-loop-idiom");
Type *IntPtrTy = Builder.getIntPtrTy(*DL, SI->getPointerAddressSpace());
diff --git a/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp b/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
index 70df59d01d6c7..0473eac69c1d8 100644
--- a/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
+++ b/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
@@ -543,11 +543,9 @@ bool PPCLoopInstrFormPrep::rewriteLoadStoresForCommoningChains(
"invalid bucket for chain commoning!\n");
SmallPtrSet<Value *, 16> DeletedPtrs;
- BasicBlock *Header = L->getHeader();
BasicBlock *LoopPredecessor = L->getLoopPredecessor();
- SCEVExpander SCEVE(*SE, Header->getDataLayout(),
- "loopprepare-chaincommon");
+ SCEVExpander SCEVE(*SE, "loopprepare-chaincommon");
for (unsigned ChainIdx = 0; ChainIdx < Bucket.ChainBases.size(); ++ChainIdx) {
unsigned BaseElemIdx = Bucket.ChainSize * ChainIdx;
@@ -1013,9 +1011,7 @@ bool PPCLoopInstrFormPrep::rewriteLoadStores(
if (!BasePtrSCEV->isAffine())
return MadeChange;
- BasicBlock *Header = L->getHeader();
- SCEVExpander SCEVE(*SE, Header->getDataLayout(),
- "loopprepare-formrewrite");
+ SCEVExpander SCEVE(*SE, "loopprepare-formrewrite");
if (!SCEVE.isSafeToExpand(BasePtrSCEV->getStart()))
return MadeChange;
diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
index 400cb1ecb5e03..f377c192371ea 100644
--- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
+++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
@@ -2066,7 +2066,7 @@ bool IndVarSimplify::run(Loop *L) {
Changed |= rewriteNonIntegerIVs(L);
// Create a rewriter object which we'll use to transform the code with.
- SCEVExpander Rewriter(*SE, DL, "indvars");
+ SCEVExpander Rewriter(*SE, "indvars");
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
Rewriter.setDebugType(DEBUG_TYPE);
#endif
diff --git a/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp b/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
index 7706de82c090c..691f544a2779c 100644
--- a/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
@@ -401,8 +401,7 @@ static bool splitLoopBound(Loop &L, DominatorTree &DT, LoopInfo &LI,
? SE.getSMinExpr(NewBoundSCEV, SplitBoundSCEV)
: SE.getUMinExpr(NewBoundSCEV, SplitBoundSCEV);
- SCEVExpander Expander(
- SE, L.getHeader()->getDataLayout(), "split");
+ SCEVExpander Expander(SE, "split");
Instruction *InsertPt = SplitLoopPH->getTerminator();
Value *NewBoundValue =
Expander.expandCodeFor(NewBoundSCEV, NewBoundSCEV->getType(), InsertPt);
diff --git a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
index 61863bcf1337a..6f0d8dcb05e04 100644
--- a/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
@@ -390,7 +390,7 @@ bool LoopDataPrefetch::runOnLoop(Loop *L) {
continue;
BasicBlock *BB = P.InsertPt->getParent();
- SCEVExpander SCEVE(*SE, BB->getDataLayout(), "prefaddr");
+ SCEVExpander SCEVE(*SE, "prefaddr");
const SCEV *NextLSCEV = SE->getAddExpr(P.LSCEVAddRec, SE->getMulExpr(
SE->getConstant(P.LSCEVAddRec->getType(), ItersAhead),
P.LSCEVAddRec->getStepRecurrence(*SE)));
diff --git a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp
index 04039b885f3c5..d8b611076efea 100644
--- a/llvm/lib/Transforms/Scalar/LoopFlatten.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopFlatten.cpp
@@ -862,7 +862,7 @@ static bool CanWidenIV(FlattenInfo &FI, DominatorTree *DT, LoopInfo *LI,
return false;
}
- SCEVExpander Rewriter(*SE, DL, "loopflatten");
+ SCEVExpander Rewriter(*SE, "loopflatten");
SmallVector<WeakTrackingVH, 4> DeadInsts;
unsigned ElimExt = 0;
unsigned Widened = 0;
diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
index 1730ec067c2cc..cdbd0af4cbeaf 100644
--- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
@@ -1053,7 +1053,7 @@ bool LoopIdiomRecognize::processLoopStridedStore(
unsigned DestAS = DestPtr->getType()->getPointerAddressSpace();
BasicBlock *Preheader = CurLoop->getLoopPreheader();
IRBuilder<> Builder(Preheader->getTerminator());
- SCEVExpander Expander(*SE, *DL, "loop-idiom");
+ SCEVExpander Expander(*SE, "loop-idiom");
SCEVExpanderCleaner ExpCleaner(Expander);
Type *DestInt8PtrTy = Builder.getPtrTy(DestAS);
@@ -1309,7 +1309,7 @@ bool LoopIdiomRecognize::processLoopStoreOfLoopLoad(
// header. This allows us to insert code for it in the preheader.
BasicBlock *Preheader = CurLoop->getLoopPreheader();
IRBuilder<> Builder(Preheader->getTerminator());
- SCEVExpander Expander(*SE, *DL, "loop-idiom");
+ SCEVExpander Expander(*SE, "loop-idiom");
SCEVExpanderCleaner ExpCleaner(Expander);
@@ -1940,8 +1940,7 @@ bool LoopIdiomRecognize::recognizeAndInsertStrLen() {
IRBuilder<> Builder(Preheader->getTerminator());
Builder.SetCurrentDebugLocation(CurLoop->getStartLoc());
- SCEVExpander Expander(*SE, Preheader->getModule()->getDataLayout(),
- "strlen_idiom");
+ SCEVExpander Expander(*SE, "strlen_idiom");
Value *MaterialzedBase = Expander.expandCodeFor(
Verifier.LoadBaseEv, Verifier.LoadBaseEv->getType(),
Builder.GetInsertPoint());
@@ -3496,7 +3495,7 @@ bool LoopIdiomRecognize::recognizeShiftUntilZero() {
Val->getName() + ".numactivebits", /*HasNUW=*/true,
/*HasNSW=*/Bitwidth != 2);
- SCEVExpander Expander(*SE, *DL, "loop-idiom");
+ SCEVExpander Expander(*SE, "loop-idiom");
Expander.setInsertPoint(&*Builder.GetInsertPoint());
Value *ExtraOffset = Expander.expandCodeFor(ExtraOffsetExpr);
diff --git a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
index 1b770be3909a9..82c55011df1cd 100644
--- a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
@@ -615,8 +615,7 @@ class LoadEliminationForLoop {
// Next, propagate the value stored by the store to the users of the load.
// Also for the first iteration, generate the initial value of the load.
- SCEVExpander SEE(*PSE.getSE(), L->getHeader()->getDataLayout(),
- "storeforward");
+ SCEVExpander SEE(*PSE.getSE(), "storeforward");
for (const auto &Cand : Candidates)
propagateStoredValueToLoadUsers(Cand, SEE);
NumLoopLoadEliminted += Candidates.size();
diff --git a/llvm/lib/Transforms/Scalar/LoopPredication.cpp b/llvm/lib/Transforms/Scalar/LoopPredication.cpp
index 1797a2f2366af..ea261491b7f94 100644
--- a/llvm/lib/Transforms/Scalar/LoopPredication.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopPredication.cpp
@@ -1233,7 +1233,7 @@ bool LoopPredication::runOnLoop(Loop *Loop) {
cast<BranchInst>(BB->getTerminator()));
}
- SCEVExpander Expander(*SE, *DL, "loop-predication");
+ SCEVExpander Expander(*SE, "loop-predication");
bool Changed = false;
for (auto *Guard : Guards)
Changed |= widenGuardConditions(Guard, Expander);
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index 68cffd4c18688..e12caa2136962 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -6159,8 +6159,7 @@ LSRInstance::LSRInstance(Loop *L, IVUsers &IU, ScalarEvolution &SE,
MSSAU(MSSAU), AMK(PreferredAddresingMode.getNumOccurrences() > 0
? PreferredAddresingMode
: TTI.getPreferredAddressingMode(L, &SE)),
- Rewriter(SE, L->getHeader()->getDataLayout(), "lsr", false),
- BaselineCost(L, SE, TTI, AMK) {
+ Rewriter(SE, "lsr", false), BaselineCost(L, SE, TTI, AMK) {
// If LoopSimplify form is not available, stay out of trouble.
if (!L->isLoopSimplifyForm())
return;
@@ -7060,8 +7059,7 @@ static bool ReduceLoopStrength(Loop *L, IVUsers &IU, ScalarEvolution &SE,
Changed |= DeleteDeadPHIs(L->getHeader(), &TLI, MSSAU.get());
if (EnablePhiElim && L->isLoopSimplifyForm()) {
SmallVector<WeakTrackingVH, 16> DeadInsts;
- const DataLayout &DL = L->getHeader()->getDataLayout();
- SCEVExpander Rewriter(SE, DL, "lsr", false);
+ SCEVExpander Rewriter(SE, "lsr", false);
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
Rewriter.setDebugType(DEBUG_TYPE);
#endif
@@ -7081,8 +7079,7 @@ static bool ReduceLoopStrength(Loop *L, IVUsers &IU, ScalarEvolution &SE,
// skip the updates in each loop iteration.
if (L->isRecursivelyLCSSAForm(DT, LI) && L->getExitBlock()) {
SmallVector<WeakTrackingVH, 16> DeadInsts;
- const DataLayout &DL = L->getHeader()->getDataLayout();
- SCEVExpander Rewriter(SE, DL, "lsr", true);
+ SCEVExpander Rewriter(SE, "lsr", true);
int Rewrites = rewriteLoopExitValues(L, &LI, &TLI, &SE, &TTI, Rewriter, &DT,
UnusedIndVarInLoop, DeadInsts);
Rewriter.clear();
diff --git a/llvm/lib/Transforms/Scalar/LoopTermFold.cpp b/llvm/lib/Transforms/Scalar/LoopTermFold.cpp
index d11af1e10e38f..26964ab1e8745 100644
--- a/llvm/lib/Transforms/Scalar/LoopTermFold.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopTermFold.cpp
@@ -118,8 +118,7 @@ canFoldTermCondOfLoop(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
}();
const SCEV *BECount = SE.getBackedgeTakenCount(L);
- const DataLayout &DL = L->getHeader()->getDataLayout();
- SCEVExpander Expander(SE, DL, "lsr_fold_term_cond");
+ SCEVExpander Expander(SE, "lsr_fold_term_cond");
PHINode *ToHelpFold = nullptr;
const SCEV *TermValueS = nullptr;
@@ -260,8 +259,7 @@ static bool RunTermFold(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
cast<Instruction>(LoopValue)->dropPoisonGeneratingFlags();
// SCEVExpander for both use in preheader and latch
- const DataLayout &DL = L->getHeader()->getDataLayout();
- SCEVExpander Expander(SE, DL, "lsr_fold_term_cond");
+ SCEVExpander Expander(SE, "lsr_fold_term_cond");
assert(Expander.isSafeToExpand(TermValueS) &&
"Terminating value was checked safe in canFoldTerminatingCondition");
diff --git a/llvm/lib/Transforms/Scalar/NaryReassociate.cpp b/llvm/lib/Transforms/Scalar/NaryReassociate.cpp
index ec17443b37143..ec145f2f48bea 100644
--- a/llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+++ b/llvm/lib/Transforms/Scalar/NaryReassociate.cpp
@@ -640,7 +640,7 @@ Value *NaryReassociatePass::tryReassociateMinOrMax(Instruction *I,
SE->getUnknown(R1MinMax)};
const SCEV *R2Expr = SE->getMinMaxExpr(SCEVType, Ops2);
- SCEVExpander Expander(*SE, *DL, "nary-reassociate");
+ SCEVExpander Expander(*SE, "nary-reassociate");
Value *NewMinMax = Expander.expandCodeFor(R2Expr, I->getType(), I);
NewMinMax->setName(Twine(I->getName()).concat(".nary"));
diff --git a/llvm/lib/Transforms/Utils/LoopConstrainer.cpp b/llvm/lib/Transforms/Utils/LoopConstrainer.cpp
index 8f103153059e8..efc307e31a8b9 100644
--- a/llvm/lib/Transforms/Utils/LoopConstrainer.cpp
+++ b/llvm/lib/Transforms/Utils/LoopConstrainer.cpp
@@ -397,8 +397,7 @@ LoopStructure::parseLoopStructure(ScalarEvolution &SE, Loop &L,
BasicBlock *LatchExit = LatchBr->getSuccessor(LatchBrExitIdx);
assert(!L.contains(LatchExit) && "expected an exit block!");
- const DataLayout &DL = Preheader->getDataLayout();
- SCEVExpander Expander(SE, DL, "loop-constrainer");
+ SCEVExpander Expander(SE, "loop-constrainer");
Instruction *Ins = Preheader->getTerminator();
if (FixedRightSCEV)
@@ -733,7 +732,7 @@ bool LoopConstrainer::run() {
bool Increasing = MainLoopStructure.IndVarIncreasing;
IntegerType *IVTy = cast<IntegerType>(RangeTy);
- SCEVExpander Expander(SE, F.getDataLayout(), "loop-constrainer");
+ SCEVExpander Expander(SE, "loop-constrainer");
Instruction *InsertPt = OriginalPreheader->getTerminator();
// It would have been better to make `PreLoop' and `PostLoop'
diff --git a/llvm/lib/Transforms/Utils/LoopPeel.cpp b/llvm/lib/Transforms/Utils/LoopPeel.cpp
index 9b5114aa89e23..635b90020f625 100644
--- a/llvm/lib/Transforms/Utils/LoopPeel.cpp
+++ b/llvm/lib/Transforms/Utils/LoopPeel.cpp
@@ -498,7 +498,7 @@ bool llvm::canPeelLastIteration(const Loop &L, ScalarEvolution &SE) {
m_BasicBlock(Succ1), m_BasicBlock(Succ2))) &&
((Pred == CmpInst::ICMP_EQ && Succ2 == L.getHeader()) ||
(Pred == CmpInst::ICMP_NE && Succ1 == L.getHeader())) &&
- Bound->getType()->isIntegerTy() &&
+ Bound->getType()->isIntegerTy() &&
SE.isLoopInvariant(SE.getSCEV(Bound), &L) &&
match(SE.getSCEV(Inc),
m_scev_AffineAddRec(m_SCEV(), m_scev_One(), m_SpecificLoop(&L)));
@@ -515,7 +515,7...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/171823
More information about the llvm-commits
mailing list