[llvm] [LoopInterchange] Handle PHI nodes in inner loop preheader (PR #196691)
Ryotaro Kasuga via llvm-commits
llvm-commits at lists.llvm.org
Tue May 12 02:26:52 PDT 2026
================
@@ -2019,6 +2019,19 @@ bool LoopInterchangeTransform::transform(
// instructions outside the loop nest.
BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader();
BasicBlock *OuterLoopHeader = OuterLoop->getHeader();
+
+ // check if there are any Single path Phi Nodes in InnerLoop-Pre Header
+
+ if (InnerLoopPreHeader && InnerLoopPreHeader != OuterLoopHeader) {
+
+ for (PHINode &P : make_early_inc_range(InnerLoopPreHeader->phis())) {
+ if (P.getNumIncomingValues() == 1) {
----------------
kasuga-fj wrote:
IIUC, `P` should not have more than one incoming values here because such cases would have been rejected in earlier stages. If that's the case, maybe adding an assert `P.getNumIncommingValues() == 1` would be better than if-statement.
https://github.com/llvm/llvm-project/pull/196691
More information about the llvm-commits
mailing list