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 Actions Closing 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 Actions Reopen 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 Actions Address 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?