[llvm] [VPlan] Dispatch to multiple exit blocks via middle blocks. (PR #112138)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 9 02:32:00 PST 2024
================
@@ -9238,11 +9259,25 @@ LoopVectorizationPlanner::tryToBuildVPlanWithVPRecipes(VFRange &Range) {
"VPBasicBlock");
RecipeBuilder.fixHeaderPhis();
+ if (Legal->hasUncountableEarlyExit()) {
+ assert(Legal->getUncountableExitingBlocks().size() == 1 &&
+ "Only single uncountable exiting bock supported");
+ VPlanTransforms::handleUncountableEarlyExit(
+ *Plan, *PSE.getSE(), OrigLoop, Legal->getUncountableExitingBlocks()[0],
+ RecipeBuilder);
+ }
addScalarResumePhis(RecipeBuilder, *Plan);
SetVector<VPIRInstruction *> ExitUsersToFix = collectUsersInExitBlocks(
OrigLoop, RecipeBuilder, *Plan, Legal->getInductionVars());
----------------
ayalz wrote:
Better have `collectUsersInExitBlocks()` indicate failure, than `addUsersInExitBlocks()`, which follows `addExitUsersForFirstOrderRecurrences()`?
https://github.com/llvm/llvm-project/pull/112138
More information about the llvm-commits
mailing list