[llvm] [VPlan] Update scalar induction resume values in VPlan. (PR #110577)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 17 14:24:47 PST 2024
================
@@ -7803,10 +7823,37 @@ EpilogueVectorizerMainLoop::createEpilogueVectorizedLoopSkeleton(
// Generate the induction variable.
EPI.VectorTripCount = getOrCreateVectorTripCount(LoopVectorPreHeader);
- // Skip induction resume value creation here because they will be created in
- // the second pass for the scalar loop. The induction resume values for the
- // inductions in the epilogue loop are created before executing the plan for
- // the epilogue loop.
+ // Create induction resume values and ResumePhis for the inductions in the
+ // epilogue loop in the VPlan for the epilogue vector loop.
----------------
ayalz wrote:
Sentence is somewhat cumbersome.
Below `EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton()` continues to call plural `createInductionResumeValues()`, for resume values of the scalar loop, with additional bypass.
Here `EpilogueVectorizerMainLoop::createEpilogueVectorizedLoopSkeleton()` now calls singular `createInductionResumeValue()`, repeatedly, for resume values of the epilog loop, w/o additional bypass.
Can plural `createInductionResumeValues()` be called here as well, w/o additional bypass? It seems to be doing exactly what's needed.
https://github.com/llvm/llvm-project/pull/110577
More information about the llvm-commits
mailing list