[llvm] [SCEV] Collect and merge loop guards through PHI nodes with multiple incoming values (PR #113915)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 17 11:33:10 PST 2024
================
@@ -1316,6 +1316,25 @@ class ScalarEvolution {
LoopGuards(ScalarEvolution &SE) : SE(SE) {}
+ /// Recursively collect loop guards in \p Guards, starting from
+ /// block \p Block with predecessor \p Pred. The intended starting point
+ /// is to collect from a loop header and its predecessor.
+ static void
+ collectFromBlock(ScalarEvolution &SE, ScalarEvolution::LoopGuards &Guards,
+ const BasicBlock *Block, const BasicBlock *Pred,
+ SmallPtrSetImpl<const BasicBlock *> &VisitedBlocks,
+ unsigned Depth = 0);
+
+ /// Collect loop guards in \p Guards, starting from PHINode \p
+ /// Phi, by calling \p collectFromBlock on the incoming blocks of
+ /// \Phi and trying to merge the found constraints into a single
+ /// combined on for \p Phi.
----------------
fhahn wrote:
Should be fixed in feb9b3701bf6650f91e12e7f4efbe72383f3f60b (@juliannagele is OOO for few days, so I took care of it)
https://github.com/llvm/llvm-project/pull/113915
More information about the llvm-commits
mailing list