[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