[PATCH] D104636: [LoopIdiom] [LoopNest] let the pass deal with runtime memset size
Yueh-Ting Chen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 3 04:42:00 PDT 2021
eopXD updated this revision to Diff 363694.
eopXD added a comment.
Address comments.
- For SCEV expression MemsetSize and PointerStride of a memset instruction, the pass would first fold expressions that is already guarded by the loop guard. If the folded expressions are not equal, LoopIdiomRecognize will abort. LoopNestIdiomRecognize would proceed to try convert the SCEV and add appropriate runtime checks. If the converted expression are equal, LNIR would proceed the optimization and do versioning at the outer-most loop.
- Added separate testcase files for LIR and LNIR. For LIR, it can deal with runtime determined variables when runtime check is required. For LNIR, it will do versioning and add runtime check if needed.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104636/new/
https://reviews.llvm.org/D104636
Files:
llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
llvm/test/Transforms/LoopIdiom/memset-runtime-lir.ll
llvm/test/Transforms/LoopIdiom/memset-runtime-lnir.ll
llvm/test/Transforms/LoopIdiom/memset-runtime.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104636.363694.patch
Type: text/x-patch
Size: 30466 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210803/96e6609e/attachment.bin>
More information about the llvm-commits
mailing list