[PATCH] D109280: [WIP][DSE] Memory intrinsics like memset, memcpy, memmove are removed if they are overwritten by a store in a loop

Daniil Seredkin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 8 13:38:19 PDT 2021


vdsered updated this revision to Diff 371432.
vdsered added a comment.

1. Added one test for a loop with several latches where we don't always overwrite the region where memory intrinsic writes to
2. Fixed formatting
3. Replaced typed pointers with opaque pointers (--force-opaque-pointers is used in tests)
4. Fixed crash caused by an assertion for multiplication of operands with different types
5. Optimized ContinuousMemoryRegion and removed one field from there
6. Added a feature flag EnableMemIntrinsicEliminationByStores to enable/disable this feature at runtime (probably not the best naming)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109280/new/

https://reviews.llvm.org/D109280

Files:
  llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
  llvm/test/Transforms/DeadStoreElimination/loop-variant-store-and-dom-memory-intrinsic.ll
  llvm/test/Transforms/DeadStoreElimination/loop-variant-store-and-post-dom-memory-intrinsic.ll
  llvm/test/Transforms/DeadStoreElimination/loop-variant-store-negative-tests.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D109280.371432.patch
Type: text/x-patch
Size: 56694 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210908/5649aefa/attachment.bin>


More information about the llvm-commits mailing list