[llvm] [polly] [SCEVExp] Get DL from SE, strip constructor arg (NFC) (PR #171823)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 11 05:31:43 PST 2025


https://github.com/artagnon updated https://github.com/llvm/llvm-project/pull/171823

>From 511fb221361e18a634ee5e1eab295514c55000c5 Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Thu, 11 Dec 2025 11:08:15 +0000
Subject: [PATCH 1/2] [SCEVExp] Get DL from SE, strip constructor arg (NFC)

---
 .../Utils/ScalarEvolutionExpander.h           | 12 +++---
 llvm/lib/CodeGen/HardwareLoops.cpp            | 40 +++++++------------
 llvm/lib/Target/ARM/MVETailPredication.cpp    |  3 +-
 .../Hexagon/HexagonLoopIdiomRecognition.cpp   |  2 +-
 .../Target/PowerPC/PPCLoopInstrFormPrep.cpp   |  8 +---
 llvm/lib/Transforms/Scalar/IndVarSimplify.cpp |  2 +-
 llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp |  3 +-
 .../Transforms/Scalar/LoopDataPrefetch.cpp    |  2 +-
 llvm/lib/Transforms/Scalar/LoopFlatten.cpp    |  2 +-
 .../Transforms/Scalar/LoopIdiomRecognize.cpp  |  9 ++---
 .../Transforms/Scalar/LoopLoadElimination.cpp |  3 +-
 .../lib/Transforms/Scalar/LoopPredication.cpp |  2 +-
 .../Transforms/Scalar/LoopStrengthReduce.cpp  |  9 ++---
 llvm/lib/Transforms/Scalar/LoopTermFold.cpp   |  6 +--
 .../lib/Transforms/Scalar/NaryReassociate.cpp |  2 +-
 llvm/lib/Transforms/Utils/LoopConstrainer.cpp |  5 +--
 llvm/lib/Transforms/Utils/LoopPeel.cpp        |  6 +--
 .../Transforms/Utils/LoopUnrollRuntime.cpp    |  3 +-
 llvm/lib/Transforms/Utils/LoopVersioning.cpp  |  7 +---
 llvm/lib/Transforms/Utils/SimplifyIndVar.cpp  |  2 +-
 .../Transforms/Vectorize/LoopVectorize.cpp    | 10 ++---
 .../Transforms/Vectorize/SLPVectorizer.cpp    |  2 +-
 .../Transforms/Vectorize/VPlanTransforms.cpp  |  3 +-
 .../Utils/ScalarEvolutionExpanderTest.cpp     | 30 +++++++-------
 24 files changed, 72 insertions(+), 101 deletions(-)

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 @@ static bool shouldPeelLastIteration(Loop &L, CmpPredicate Pred,
     return false;
 
   const SCEV *BTC = SE.getBackedgeTakenCount(&L);
-  SCEVExpander Expander(SE, L.getHeader()->getDataLayout(), "loop-peel");
+  SCEVExpander Expander(SE, "loop-peel");
   if (!SE.isKnownNonZero(BTC) &&
       Expander.isHighCostExpansion(BTC, &L, SCEVCheapExpansionBudget, &TTI,
                                    L.getLoopPredecessor()->getTerminator()))
@@ -1215,7 +1215,7 @@ bool llvm::peelLoop(Loop *L, unsigned PeelCount, bool PeelLast, LoopInfo *LI,
       }
     } else {
       NewPreHeader = SplitEdge(PreHeader, Header, &DT, LI);
-      SCEVExpander Expander(*SE, Latch->getDataLayout(), "loop-peel");
+      SCEVExpander Expander(*SE, "loop-peel");
 
       BranchInst *PreHeaderBR = cast<BranchInst>(PreHeader->getTerminator());
       Value *BTCValue =
diff --git a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
index 7de868364c607..7ff3f0b28f4e2 100644
--- a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+++ b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
@@ -752,8 +752,7 @@ bool llvm::UnrollRuntimeLoopRemainder(
 
   BasicBlock *PreHeader = L->getLoopPreheader();
   BranchInst *PreHeaderBR = cast<BranchInst>(PreHeader->getTerminator());
-  const DataLayout &DL = Header->getDataLayout();
-  SCEVExpander Expander(*SE, DL, "loop-unroll");
+  SCEVExpander Expander(*SE, "loop-unroll");
   if (!AllowExpensiveTripCount &&
       Expander.isHighCostExpansion(TripCountSC, L, SCEVExpansionBudget, TTI,
                                    PreHeaderBR)) {
diff --git a/llvm/lib/Transforms/Utils/LoopVersioning.cpp b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
index 9c8b6ef83e56d..b90466a8c49cf 100644
--- a/llvm/lib/Transforms/Utils/LoopVersioning.cpp
+++ b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
@@ -61,14 +61,11 @@ void LoopVersioning::versionLoop(
   BasicBlock *RuntimeCheckBB = VersionedLoop->getLoopPreheader();
   const auto &RtPtrChecking = *LAI.getRuntimePointerChecking();
 
-  SCEVExpander Exp2(*RtPtrChecking.getSE(),
-                    VersionedLoop->getHeader()->getDataLayout(),
-                    "induction");
+  SCEVExpander Exp2(*RtPtrChecking.getSE(), "induction");
   MemRuntimeCheck = addRuntimeChecks(RuntimeCheckBB->getTerminator(),
                                      VersionedLoop, AliasChecks, Exp2);
 
-  SCEVExpander Exp(*SE, RuntimeCheckBB->getDataLayout(),
-                   "scev.check");
+  SCEVExpander Exp(*SE, "scev.check");
   SCEVRuntimeCheck =
       Exp.expandCodeForPredicate(&Preds, RuntimeCheckBB->getTerminator());
 
diff --git a/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp b/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
index 61acf3ab61a22..792c1ac31c2ba 100644
--- a/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
@@ -1035,7 +1035,7 @@ std::pair<bool, bool> simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE,
 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
                      LoopInfo *LI, const TargetTransformInfo *TTI,
                      SmallVectorImpl<WeakTrackingVH> &Dead) {
-  SCEVExpander Rewriter(*SE, SE->getDataLayout(), "indvars");
+  SCEVExpander Rewriter(*SE, "indvars");
 #if LLVM_ENABLE_ABI_BREAKING_CHECKS
   Rewriter.setDebugType(DEBUG_TYPE);
 #endif
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 15d0fa41bd902..b3577e4ecbca8 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -1807,10 +1807,10 @@ class GeneratedRTChecks {
 public:
   GeneratedRTChecks(PredicatedScalarEvolution &PSE, DominatorTree *DT,
                     LoopInfo *LI, TargetTransformInfo *TTI,
-                    const DataLayout &DL, TTI::TargetCostKind CostKind)
+                    TTI::TargetCostKind CostKind)
       : DT(DT), LI(LI), TTI(TTI),
-        SCEVExp(*PSE.getSE(), DL, "scev.check", /*PreserveLCSSA=*/false),
-        MemCheckExp(*PSE.getSE(), DL, "scev.check", /*PreserveLCSSA=*/false),
+        SCEVExp(*PSE.getSE(), "scev.check", /*PreserveLCSSA=*/false),
+        MemCheckExp(*PSE.getSE(), "scev.check", /*PreserveLCSSA=*/false),
         PSE(PSE), CostKind(CostKind) {}
 
   /// Generate runtime checks in SCEVCheckBlock and MemCheckBlock, so we can
@@ -9249,7 +9249,7 @@ static bool processLoopInVPlanNativePath(
   VPlan &BestPlan = LVP.getPlanFor(VF.Width);
 
   {
-    GeneratedRTChecks Checks(PSE, DT, LI, TTI, F->getDataLayout(), CM.CostKind);
+    GeneratedRTChecks Checks(PSE, DT, LI, TTI, CM.CostKind);
     InnerLoopVectorizer LB(L, PSE, LI, DT, TTI, AC, VF.Width, /*UF=*/1, &CM,
                            Checks, BestPlan);
     LLVM_DEBUG(dbgs() << "Vectorizing outer loop in \""
@@ -10085,7 +10085,7 @@ bool LoopVectorizePass::processLoop(Loop *L) {
   if (ORE->allowExtraAnalysis(LV_NAME))
     LVP.emitInvalidCostRemarks(ORE);
 
-  GeneratedRTChecks Checks(PSE, DT, LI, TTI, F->getDataLayout(), CM.CostKind);
+  GeneratedRTChecks Checks(PSE, DT, LI, TTI, CM.CostKind);
   if (LVP.hasPlanWithVF(VF.Width)) {
     // Select the interleave count.
     IC = LVP.selectInterleaveCount(LVP.getPlanFor(VF.Width), VF.Width, VF.Cost);
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 6da11a2796d6b..a56edc67f28e4 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -19921,7 +19921,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
         if (!Stride) {
           const SCEV *StrideSCEV = SPtrInfo.StrideSCEV;
           assert(StrideSCEV && "Neither StrideVal nor StrideSCEV were set.");
-          SCEVExpander Expander(*SE, *DL, "strided-load-vec");
+          SCEVExpander Expander(*SE, "strided-load-vec");
           Stride = Expander.expandCodeFor(StrideSCEV, StrideSCEV->getType(),
                                           &*Builder.GetInsertPoint());
         }
diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
index 852196e589c59..6627133878fdb 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
@@ -4670,8 +4670,7 @@ void VPlanTransforms::materializeVFAndVFxUF(VPlan &Plan, VPBasicBlock *VectorPH,
 
 DenseMap<const SCEV *, Value *>
 VPlanTransforms::expandSCEVs(VPlan &Plan, ScalarEvolution &SE) {
-  const DataLayout &DL = SE.getDataLayout();
-  SCEVExpander Expander(SE, DL, "induction", /*PreserveLCSSA=*/false);
+  SCEVExpander Expander(SE, "induction", /*PreserveLCSSA=*/false);
 
   auto *Entry = cast<VPIRBasicBlock>(Plan.getEntry());
   BasicBlock *EntryBB = Entry->getIRBasicBlock();
diff --git a/llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp b/llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
index 4fe30805f9499..144a28a358f6e 100644
--- a/llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
+++ b/llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
@@ -185,7 +185,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVZeroExtendExprNonIntegral) {
       SE.getAddRecExpr(SE.getUnknown(GepBase), SE.getConstant(T_int64, 1),
                        LI->getLoopFor(L), SCEV::FlagNUW);
 
-  SCEVExpander Exp(SE, NIM.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   Exp.disableCanonicalMode();
   Exp.expandCodeFor(AddRec, T_pint64, Ret);
 
@@ -255,7 +255,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderIsSafeToExpandAt) {
   Instruction *Ret = Builder.CreateRetVoid();
 
   ScalarEvolution SE = buildSE(*F);
-  SCEVExpander Exp(SE, M.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   const SCEV *S = SE.getSCEV(Phi);
   EXPECT_TRUE(isa<SCEVAddRecExpr>(S));
   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
@@ -317,7 +317,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderNUW) {
   ScalarEvolution SE = buildSE(*F);
   const SCEV *S = SE.getSCEV(S1);
   EXPECT_TRUE(isa<SCEVAddExpr>(S));
-  SCEVExpander Exp(SE, M.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   auto *I = cast<Instruction>(Exp.expandCodeFor(S, nullptr, R));
   EXPECT_FALSE(I->hasNoUnsignedWrap());
 }
@@ -369,7 +369,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderNSW) {
   ScalarEvolution SE = buildSE(*F);
   const SCEV *S = SE.getSCEV(S1);
   EXPECT_TRUE(isa<SCEVAddExpr>(S));
-  SCEVExpander Exp(SE, M.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   auto *I = cast<Instruction>(Exp.expandCodeFor(S, nullptr, R));
   EXPECT_FALSE(I->hasNoSignedWrap());
 }
@@ -420,7 +420,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVCacheNUW) {
   EXPECT_TRUE(isa<SCEVAddExpr>(SC1));
   // Expand for S1, it should use S1 not S2 in spite S2
   // first in the cache.
-  SCEVExpander Exp(SE, M.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   auto *I = cast<Instruction>(Exp.expandCodeFor(SC1, nullptr, R));
   EXPECT_FALSE(I->hasNoUnsignedWrap());
 }
@@ -471,7 +471,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVCacheNSW) {
   EXPECT_TRUE(isa<SCEVAddExpr>(SC1));
   // Expand for S1, it should use S1 not S2 in spite S2
   // first in the cache.
-  SCEVExpander Exp(SE, M.getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   auto *I = cast<Instruction>(Exp.expandCodeFor(SC1, nullptr, R));
   EXPECT_FALSE(I->hasNoSignedWrap());
 }
@@ -512,7 +512,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandInsertCanonicalIV) {
               unsigned ExpectedCanonicalIVWidth =
                   SE.getTypeSizeInBits(AR->getType());
 
-              SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+              SCEVExpander Exp(SE, "expander");
               auto *InsertAt = I.getNextNode();
               Exp.expandCodeFor(AR, nullptr, InsertAt);
               PHINode *CanonicalIV = Loop->getCanonicalInductionVariable();
@@ -563,7 +563,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandInsertCanonicalIV) {
           cast<IntegerType>(CanonicalIV->getType())->getBitWidth();
       EXPECT_LT(CanonicalIVBitWidth, ExpectedCanonicalIVWidth);
 
-      SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+      SCEVExpander Exp(SE, "expander");
       auto *InsertAt = I.getNextNode();
       Exp.expandCodeFor(AR, nullptr, InsertAt);
 
@@ -645,7 +645,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandInsertCanonicalIV) {
               EXPECT_EQ(ARBitWidth, SE.getTypeSizeInBits(AR->getType()));
               EXPECT_EQ(CanonicalIVBitWidth, ARBitWidth);
 
-              SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+              SCEVExpander Exp(SE, "expander");
               auto *InsertAt = I.getNextNode();
               Exp.expandCodeFor(AR, nullptr, InsertAt);
 
@@ -698,7 +698,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpanderShlNSW) {
     EXPECT_TRUE(isa<SCEVMulExpr>(AndSCEV));
     EXPECT_TRUE(cast<SCEVMulExpr>(AndSCEV)->hasNoSignedWrap());
 
-    SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+    SCEVExpander Exp(SE, "expander");
     auto *I = cast<Instruction>(Exp.expandCodeFor(AndSCEV, nullptr, And));
     EXPECT_EQ(I->getOpcode(), Instruction::Shl);
     EXPECT_FALSE(I->hasNoSignedWrap());
@@ -755,7 +755,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandNonAffineAddRec) {
                     auto *AR = GetAddRec(SE, Loop);
                     EXPECT_FALSE(AR->isAffine());
 
-                    SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+                    SCEVExpander Exp(SE, "expander");
                     auto *InsertAt = I.getNextNode();
                     Value *V = Exp.expandCodeFor(AR, nullptr, InsertAt);
                     const SCEV *ExpandedAR = SE.getSCEV(V);
@@ -804,7 +804,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandNonAffineAddRec) {
           cast<IntegerType>(CanonicalIV->getType())->getBitWidth();
       EXPECT_LT(CanonicalIVBitWidth, ExpectedCanonicalIVWidth);
 
-      SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+      SCEVExpander Exp(SE, "expander");
       auto *InsertAt = I.getNextNode();
       Value *V = Exp.expandCodeFor(AR, nullptr, InsertAt);
       const SCEV *ExpandedAR = SE.getSCEV(V);
@@ -859,7 +859,7 @@ TEST_F(ScalarEvolutionExpanderTest, SCEVExpandNonAffineAddRec) {
               EXPECT_EQ(ARBitWidth, SE.getTypeSizeInBits(AR->getType()));
               EXPECT_EQ(CanonicalIVBitWidth, ARBitWidth);
 
-              SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+              SCEVExpander Exp(SE, "expander");
               auto *InsertAt = I.getNextNode();
               Value *V = Exp.expandCodeFor(AR, nullptr, InsertAt);
               const SCEV *ExpandedAR = SE.getSCEV(V);
@@ -926,7 +926,7 @@ TEST_F(ScalarEvolutionExpanderTest, ExpandNonIntegralPtrWithNullBase) {
     auto &I = GetInstByName(F, "ptr");
     auto PtrPlus1 =
         SE.getAddExpr(SE.getSCEV(&I), SE.getConstant(I.getType(), 1));
-    SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+    SCEVExpander Exp(SE, "expander");
 
     Value *V = Exp.expandCodeFor(PtrPlus1, I.getType(), &I);
     I.replaceAllUsesWith(V);
@@ -978,7 +978,7 @@ TEST_F(ScalarEvolutionExpanderTest, GEPFlags) {
   const SCEV *X = SE.getSCEV(F->getArg(1));
   const SCEV *PtrX = SE.getAddExpr(Ptr, X);
 
-  SCEVExpander Exp(SE, M->getDataLayout(), "expander");
+  SCEVExpander Exp(SE, "expander");
   auto *I = cast<Instruction>(
       Exp.expandCodeFor(PtrX, nullptr, Entry.getTerminator()));
   // Check that the GEP is reused, but the inbounds flag cleared. We don't

>From 18e358d8d3468cc1aebc89155094a20b2662767b Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Thu, 11 Dec 2025 13:28:00 +0000
Subject: [PATCH 2/2] [polly] Fix build

---
 polly/lib/Support/ScopHelper.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/polly/lib/Support/ScopHelper.cpp b/polly/lib/Support/ScopHelper.cpp
index cf0ec4432f747..27f1539aefc76 100644
--- a/polly/lib/Support/ScopHelper.cpp
+++ b/polly/lib/Support/ScopHelper.cpp
@@ -242,10 +242,10 @@ struct ScopExpander final : SCEVVisitor<ScopExpander, const SCEV *> {
   friend struct SCEVVisitor<ScopExpander, const SCEV *>;
 
   explicit ScopExpander(const Region &R, ScalarEvolution &SE, Function *GenFn,
-                        ScalarEvolution &GenSE, const DataLayout &DL,
-                        const char *Name, ValueMapT *VMap,
-                        LoopToScevMapT *LoopMap, BasicBlock *RTCBB)
-      : Expander(GenSE, DL, Name, /*PreserveLCSSA=*/false), Name(Name), R(R),
+                        ScalarEvolution &GenSE, const char *Name,
+                        ValueMapT *VMap, LoopToScevMapT *LoopMap,
+                        BasicBlock *RTCBB)
+      : Expander(GenSE, Name, /*PreserveLCSSA=*/false), Name(Name), R(R),
         VMap(VMap), LoopMap(LoopMap), RTCBB(RTCBB), GenSE(GenSE), GenFn(GenFn) {
   }
 
@@ -455,8 +455,8 @@ Value *polly::expandCodeFor(Scop &S, llvm::ScalarEvolution &SE,
                             const SCEV *E, Type *Ty, BasicBlock::iterator IP,
                             ValueMapT *VMap, LoopToScevMapT *LoopMap,
                             BasicBlock *RTCBB) {
-  ScopExpander Expander(S.getRegion(), SE, GenFn, GenSE, DL, Name, VMap,
-                        LoopMap, RTCBB);
+  ScopExpander Expander(S.getRegion(), SE, GenFn, GenSE, Name, VMap, LoopMap,
+                        RTCBB);
   return Expander.expandCodeFor(E, Ty, IP);
 }
 



More information about the llvm-commits mailing list