[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
Fri Jan 23 09:01:42 PST 2026
https://github.com/vikramRH updated https://github.com/llvm/llvm-project/pull/176692
>From 1c18207e73dcbd2bef2100a82d038cd2b10e1ff1 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..0791689660b00 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -7136,6 +7136,10 @@ PreservedAnalyses LoopStrengthReducePass::run(Loop &L, LoopAnalysisManager &AM,
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)
PA.preserve<MemorySSAAnalysis>();
More information about the llvm-branch-commits
mailing list