[PATCH] D73763: [DSE] Lift post-dominance restriction.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 2 05:02:55 PST 2020
fhahn updated this revision to Diff 247596.
fhahn added a comment.
Rebased, update comment.
In D73763#1899610 <https://reviews.llvm.org/D73763#1899610>, @jdoerfert wrote:
> Disclaimer: I haven't looked at the approach here.
> Have you seen the MustBeExecutedContextExplorer and the path exploration it allows (D65593 <https://reviews.llvm.org/D65593>)?
> Sounds like this might actually be applicable here. If the chosen approach is superior or more natural feel free to say so.
We use MemorySSA traversals here, which allows us to only check the relevant linked memory instructions, without needing to explore the CFG. I had a brief look at MustExecute and I think the MemorySSA traversal is better suited to the problem at hand, as MemorySSA directly links the 'interesting' instructions (although I might miss something about MustExecute).
Also, for a killing store, we need to find an overwriting store that must execute when the other store executes. But we also have to check for any aliasing reads that may execute in between.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73763/new/
https://reviews.llvm.org/D73763
Files:
llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
llvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
llvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
llvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73763.247596.patch
Type: text/x-patch
Size: 18043 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200302/09e9e187/attachment.bin>
More information about the llvm-commits
mailing list