[llvm] [VPlan] Make canonical IV part of the region (PR #156262)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 4 06:20:38 PST 2025
================
@@ -870,6 +894,24 @@ void VPRegionBlock::dissolveToCFGLoop() {
VPBlockUtils::connectBlocks(ExitingLatch, Header);
}
+VPInstruction *VPRegionBlock::getCanonicalIVIncrement() {
+ auto *ExitingLatch = cast<VPBasicBlock>(getExiting());
+ VPValue *CanIV = getCanonicalIV();
+ assert(CanIV && "Expected a canonical IV");
+
+ auto *ExitingTerm = ExitingLatch->getTerminator();
+ VPInstruction *CanIVInc = nullptr;
+ if (match(ExitingTerm,
+ m_BranchOnCount(m_VPInstruction(CanIVInc), m_VPValue()))) {
+ assert(match(CanIVInc,
+ m_c_Add(m_CombineOr(m_Specific(CanIV),
+ m_c_Add(m_Specific(CanIV), m_LiveIn())),
+ m_VPValue())) &&
+ "invalid existing IV increment");
+ }
----------------
ayalz wrote:
ok to only have an assert under an if?
https://github.com/llvm/llvm-project/pull/156262
More information about the llvm-commits
mailing list