[llvm] [SCEV] Add PHI SCEV verification to ensure availability at loop entry (PR #127550)
Aleksandr Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 18 08:13:10 PST 2025
https://github.com/aleks-tmb updated https://github.com/llvm/llvm-project/pull/127550
>From 05187b2b8551b8b9052e6aa8ecf5e04025cf42ae Mon Sep 17 00:00:00 2001
From: Aleksander Popov <apopov at azul.com>
Date: Tue, 18 Feb 2025 00:07:52 +0100
Subject: [PATCH] [SCEV] Add PHI SCEV verification to ensure availability at
loop entry
---
llvm/lib/Analysis/ScalarEvolution.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 8f74c1c398ced..924542607ad0b 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -14482,6 +14482,16 @@ void ScalarEvolution::verify() const {
<< "Delta: " << *Delta << "\n";
std::abort();
}
+
+ if (isa<PHINode>(I))
+ for (const Loop *L : ValidLoops)
+ if (SE.isAvailableAtLoopEntry(KV.second, L) !=
+ SE2.isAvailableAtLoopEntry(NewSCEV, L)) {
+ dbgs() << "Incorrect SCEV availability at loop entry\n"
+ << "Old: " << *OldSCEV << "\n"
+ << "New: " << *NewSCEV << "\n";
+ std::abort();
+ }
}
}
More information about the llvm-commits
mailing list