[llvm] [VPlan] Handle early exit before forming regions. (NFC) (PR #138393)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri May 9 11:50:04 PDT 2025
================
@@ -491,19 +490,38 @@ void VPlanTransforms::prepareForVectorization(VPlan &Plan, Type *InductionTy,
addCanonicalIVRecipes(Plan, cast<VPBasicBlock>(HeaderVPB),
cast<VPBasicBlock>(LatchVPB), InductionTy, IVDL);
- // Disconnect all edges to exit blocks other than from the middle block.
- // TODO: VPlans with early exits should be explicitly converted to a form
- // exiting only via the latch here, including adjusting the exit condition,
- // instead of simply disconnecting the edges and adjusting the VPlan later.
- for (VPBlockBase *EB : Plan.getExitBlocks()) {
+ [[maybe_unused]] bool HandledUncountableEarlyExit = false;
+ // Handle the remaining early exits, either by converting the plan to one only
+ // exiting via the latch or by disconnecting all early exiting edges and
+ // requiring a scalar epilogue.
----------------
fhahn wrote:
Thanks, updated!
https://github.com/llvm/llvm-project/pull/138393
More information about the llvm-commits
mailing list