[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