Letting it take SCEV allows further modification on the function to optimize
if the StoreSize / Stride is runtime determined.
The plan is to let memcpy / memmove deal with runtime-determined sizes, just
like what D107353 did to memset.
Paths
| Differential D108289
[NFC][LoopIdiom] Let processLoopStoreOfLoopLoad take StoreSize as SCEV instead of unsigned ClosedPublic Authored by eopXD on Aug 18 2021, 4:07 AM.
Details Summary Letting it take SCEV allows further modification on the function to optimize The plan is to let memcpy / memmove deal with runtime-determined sizes, just
Diff Detail
Event Timeline
eopXD added a child revision: D107353: [LoopIdiom] let the pass deal with runtime memset size.Aug 19 2021, 1:25 AM This revision is now accepted and ready to land.Aug 20 2021, 6:36 AM Comment Actions Thank you @bmahjour for reviewing! I am now going to commit and the next patch would want to let memcpy and memmove deal with runtime size. Closed by commit rG4fc98ca6174a: [NFC][LoopIdiom] Let processLoopStoreOfLoopLoad take StoreSize as SCEV instead… (authored by eopXD). · Explain WhyAug 21 2021, 12:03 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 367944 llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
|
Renamed here for better readability. Also, future patch will deal with both constant / non-constant stride, so StoreStride, LoadStride will be in type SCEV.