[llvm] [VPlan] Update scalar induction resume values in VPlan. (PR #110577)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 5 14:56:40 PST 2024
================
@@ -513,17 +513,20 @@ class InnerLoopVectorizer {
/// Fix the non-induction PHIs in \p Plan.
void fixNonInductionPHIs(VPTransformState &State);
- /// Create a new phi node for the induction variable \p OrigPhi to resume
- /// iteration count in the scalar epilogue, from where the vectorized loop
- /// left off. \p Step is the SCEV-expanded induction step to use. In cases
- /// where the loop skeleton is more complicated (i.e., epilogue vectorization)
- /// and the resume values can come from an additional bypass block, the \p
- /// AdditionalBypass pair provides information about the bypass block and the
- /// end value on the edge from bypass to this loop.
- PHINode *createInductionResumeValue(
- PHINode *OrigPhi, const InductionDescriptor &ID, Value *Step,
- ArrayRef<BasicBlock *> BypassBlocks,
- std::pair<BasicBlock *, Value *> AdditionalBypass = {nullptr, nullptr});
+ /// Create a ResumePHI VPInstruction for the induction \p InductionPhiIRI to
+ /// resume iteration count in the scalar epilogue from where the vectorized
+ /// loop left off, and add it to the scalar preheader of VPlan. Also creates
+ /// the induction resume value, and the value for the bypass block, if needed.
+ /// \p Step is the SCEV-expanded induction step to use. In cases where the
+ /// loop skeleton is more complicated (i.e., epilogue vectorization) and the
+ /// resume values can come from an additional bypass block, \p
+ /// AdditionalBypassValue provides the end value on the edge from bypass to
+ /// this loop.
----------------
fhahn wrote:
Updated, thanks
https://github.com/llvm/llvm-project/pull/110577
More information about the llvm-commits
mailing list