Update skeleton creation logic to use SCEV expansion results from
expanding the pre-header. This avoids another set of SCEV expansions
that may happen after the CFG has been modified.
Fixes #58811.
Depends on D147964.
Paths
| Differential D147965
[LV] Use VPValue to get expanded value for SCEV step expressions. ClosedPublic Authored by fhahn on Apr 10 2023, 12:52 PM.
Details Summary Update skeleton creation logic to use SCEV expansion results from Fixes #58811. Depends on D147964.
Diff Detail
Event Timeline
fhahn added inline comments.
fhahn marked 3 inline comments as done. Comment ActionsAddress latest comments, thanks! Updated to only pass const VPTransformState & and cache SCEV expansion mapping in state directly, use that. fhahn added inline comments.
fhahn added inline comments.
fhahn retitled this revision from [LV] Use VPValue to get expanded value for SCEV step expressions (WIP). to [LV] Use VPValue to get expanded value for SCEV step expressions..May 8 2023, 4:47 AM
fhahn marked 7 inline comments as done. Comment ActionsAddress latest comments, thanks!
Comment Actions Looks good to me, thanks! Minor last nits.
This revision is now accepted and ready to land.May 9 2023, 6:00 AM This revision was landed with ongoing or failed builds.May 11 2023, 8:50 AM Closed by commit rG236a0e82df37: [LV] Use VPValue to get expanded value for SCEV step expressions. (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes. fhahn marked 6 inline comments as done. Comment Actions Push unsubmitted comments
Revision Contents
Diff 520663 llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
llvm/test/Transforms/LoopVectorize/create-induction-resume.ll
llvm/test/Transforms/LoopVectorize/pointer-induction-unroll.ll
llvm/test/Transforms/LoopVectorize/pointer-induction.ll
llvm/test/Transforms/LoopVectorize/pr58811-scev-expansion.ll
|
Return value should be documented. Suffice that it be a Map or function?