[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