Letting it take SCEV allows further modification on the function to optimize
if the StoreSize / Stride is runtime determined.
This is a preceeding of D107353.
The big picture is to let LoopIdiom deal with runtime-determined sizes.
Paths
| Differential D104595
[NFCI] [LoopIdiom] Let processLoopStridedStore take StoreSize as SCEV instead of unsigned ClosedPublic Authored by eopXD on Jun 19 2021, 7:26 AM.
Details Summary Letting it take SCEV allows further modification on the function to optimize This is a preceeding of D107353.
Diff Detail
Event TimelineeopXD added a parent revision: D104179: [LoopIdiom] Introduce LoopNestIdiomRecognize as an alternative.Jun 19 2021, 7:26 AM
eopXD added a child revision: D104636: [WIP][LoopIdiom] Teach LNIR to versioning loops and add runtime check.Jun 21 2021, 5:38 AM eopXD removed a child revision: D104636: [WIP][LoopIdiom] Teach LNIR to versioning loops and add runtime check.Aug 3 2021, 7:53 AM eopXD removed a parent revision: D104179: [LoopIdiom] Introduce LoopNestIdiomRecognize as an alternative. Comment ActionsClosing this revision because D107353 is addressing these changes and additional ones that indicates its usage - Let the LoopIdiomRecognizePass deal with runtime-determined memset size. eopXD retitled this revision from [NFC] [LoopIdiom] Let processLoopStridedStore able to take SCEV as Store Size to [NFC] [LoopIdiom] Let processLoopStridedStore take SCEV as Store Size. Comment ActionsReopen this patch since a NFC can be done prior to the main change (D107353) on LoopIdiom. eopXD retitled this revision from [NFC] [LoopIdiom] Let processLoopStridedStore take SCEV as Store Size to [NFC] [LoopIdiom] Let processLoopStridedStore take StoreSize as SCEV instead of unsigned.Aug 4 2021, 2:10 AM eopXD marked an inline comment as done. Comment ActionsAddress comments.
Comment Actions Please make sure clang-format is good for the new lines you changed.
This revision is now accepted and ready to land.Aug 4 2021, 12:15 PM eopXD retitled this revision from [NFC] [LoopIdiom] Let processLoopStridedStore take StoreSize as SCEV instead of unsigned to [NFCI] [LoopIdiom] Let processLoopStridedStore take StoreSize as SCEV instead of unsigned.Aug 4 2021, 12:34 PM Comment Actions @lebedev.ri Closed by commit rG26aa1bbe97a3: [NFCI] [LoopIdiom] Let processLoopStridedStore take StoreSize as SCEV instead… (authored by eopXD). · Explain WhyAug 4 2021, 10:22 PM This revision was automatically updated to reflect the committed changes. eopXD added a child revision: D107353: [LoopIdiom] let the pass deal with runtime memset size.Aug 19 2021, 1:27 AM
Revision Contents
Diff 364210 llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
|
Is it better to have line 916-918 after 921-923?
In what case, !MemsetSizeSCEV? Do we early exit more often than before?