[llvm-branch-commits] [llvm] [CodeGen][LSR][NPM] Make LoopStrengthReduce pass preserve LCSSA (PR #176692)
Vikram Hegde via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Jan 18 21:51:08 PST 2026
https://github.com/vikramRH created https://github.com/llvm/llvm-project/pull/176692
None
>From ff783aa3cb0e4370db025b61a395c1216269adba Mon Sep 17 00:00:00 2001
From: vikhegde <vikram.hegde at amd.com>
Date: Fri, 16 Jan 2026 14:53:54 +0530
Subject: [PATCH] [CodeGen][LSR][NPM] Make LoopStrengthReduce pass preserve
LCSSA
---
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index e9d78baece25b..91d2f65a05e62 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -7135,6 +7135,10 @@ PreservedAnalyses LoopStrengthReducePass::run(Loop &L, LoopAnalysisManager &AM,
if (!ReduceLoopStrength(&L, AM.getResult<IVUsersAnalysis>(L, AR), AR.SE,
AR.DT, AR.LI, AR.TTI, AR.AC, AR.TLI, AR.MSSA))
return PreservedAnalyses::all();
+
+ // TODO: Remove this once the LSR handles LCSSA preservation completely.
+ if (auto *OuterLoop = L.getOutermostLoop())
+ formLCSSARecursively(*OuterLoop, AR.DT, &AR.LI, &AR.SE);
auto PA = getLoopPassPreservedAnalyses();
if (AR.MSSA)
More information about the llvm-branch-commits
mailing list