This patch adds a new VPScalarIVStepsRecipe to handle building scalar
steps.
In the first patch, it only handles the case where there is no vector
induction variable needed.
Paths
| Differential D115953
[VPlan] Introduce recipe to build scalar steps. ClosedPublic Authored by fhahn on Dec 17 2021, 10:26 AM.
Details Summary This patch adds a new VPScalarIVStepsRecipe to handle building scalar In the first patch, it only handles the case where there is no vector
Diff Detail
Event TimelineHerald added subscribers: tschuett, psnobl, rogfer01 and 2 others. · View Herald TranscriptDec 17 2021, 10:26 AM fhahn added a parent revision: D116123: [VPlan] Handle IV vector splat using VPWidenCanonicalIV..Dec 21 2021, 12:06 PM fhahn added a parent revision: D116288: [VPlan] Add recipe to handle SCEV expansion (NFC)..Dec 26 2021, 12:06 PM
fhahn added a parent revision: D116554: [VPlan] Use VPlan to check if only the first lane is used..Jan 3 2022, 1:08 PM fhahn added a parent revision: D118051: [VPlan] Remove dead header-phi recipes..Feb 13 2022, 3:29 AM fhahn marked 18 inline comments as done. Comment ActionsCompletely restructured the patch to introduce VPScalarIVStepsRecipe in VPlan2VPlan transformation, similiar to how VPWidenCanonicalIV is handled. The code should be much simpler now. I also tried to address the existing comments, if they still applied to the updated patch.
Comment Actions Looks good to me, thanks!
This revision is now accepted and ready to land.Feb 22 2022, 1:45 AM fhahn marked an inline comment as done. Comment ActionsThanks Ayal! Latest comments should be addressed and I am planning on landing this soon. This revision was landed with ongoing or failed builds.Feb 27 2022, 9:34 AM Closed by commit rG49b23f451cf7: [VPlan] Introduce recipe to build scalar steps. (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes. fhahn added a reverting change: rGff93260bf6bd: Revert "[VPlan] Introduce recipe to build scalar steps.".Feb 27 2022, 9:52 AM
Revision Contents
Diff 395163 llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/lib/Transforms/Vectorize/VPlan.cpp
llvm/lib/Transforms/Vectorize/VPlanValue.h
llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll
llvm/test/Transforms/LoopVectorize/ARM/tail-folding-scalar-epilogue-fallback.ll
llvm/test/Transforms/LoopVectorize/X86/small-size.ll
llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
llvm/test/Transforms/LoopVectorize/float-induction.ll
llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
llvm/test/Transforms/LoopVectorize/induction.ll
llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
llvm/test/Transforms/LoopVectorize/pointer-induction.ll
llvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll
llvm/test/Transforms/LoopVectorize/pr51614-fold-tail-by-masking.ll
llvm/test/Transforms/LoopVectorize/reverse_induction.ll
llvm/test/Transforms/LoopVectorize/runtime-check-needed-but-empty.ll
llvm/test/Transforms/LoopVectorize/select-reduction.ll
llvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
llvm/test/Transforms/LoopVectorize/vplan-dot-printing.ll
llvm/test/Transforms/LoopVectorize/vplan-printing.ll
llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
|
OldInduction moved from protected to public (in some version?) - suffice to provide a const public method to retrieve OldInduction?