Similar to D92129, update VPWidenPHIRecipe to manage the start value as
VPValue. This allows adjusting the start value as a VPlan transform,
which will be used in a follow-up patch to support reductions during
epilogue vectorization.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Update after renaming to getLiveInIRValue.
Also updated documentation for VPWidenPHIRecipe to describe when the start value is managed as first operand.
Comment Actions
I wonder if the code from fixReductions() could be moved (almost as-is) to widenPHIInstruction() as a first step?
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | ||
---|---|---|
4589 | RK seems to be the only use of RdxDesc. Can be extracted in tryToCreateWidenRecipe() and stored as an ingredient in the recipe. | |
4593 | Intentionally assigning StartV to itself? (symmetry with the else clause?) |
Comment Actions
Thanks for the suggestion, I put up D94175 to move the code and keep RdxDesc in the recipe as a first step. The current patch is much simpler now.
RK seems to be the only use of RdxDesc. Can be extracted in tryToCreateWidenRecipe() and stored as an ingredient in the recipe.