OSDN Git Service

[DSE] Teach the pass that atomic memory intrinsics are stores.
authorDaniel Neilson <dneilson@azul.com>
Mon, 23 Apr 2018 19:06:49 +0000 (19:06 +0000)
committerDaniel Neilson <dneilson@azul.com>
Mon, 23 Apr 2018 19:06:49 +0000 (19:06 +0000)
commit6c92ba3e0b09778fcd12c18d6c23c58dfef12677
tree486bc330a59e00a42c21605f66f0374f1b8a90c9
parent871b8fe06dba8f0f61dd540e3bcb6968a6ca74d5
[DSE] Teach the pass that atomic memory intrinsics are stores.

Summary:
This change teaches DSE that the atomic memory intrinsics are stores
that can be eliminated, and can allow other stores to be eliminated.
This change specifically does not teach DSE that these intrinsics
can be partially eliminated (i.e. length reduced, and dest/src changed);
that will be handled in another change.

Reviewers: mkazantsev, skatkov, apilipenko, efriedma, rsmith

Reviewed By: efriedma

Subscribers: dmgreen, llvm-commits

Differential Revision: https://reviews.llvm.org/D45535

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330629 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/MemoryLocation.h
lib/Analysis/MemoryLocation.cpp
lib/Transforms/Scalar/DeadStoreElimination.cpp
test/Transforms/DeadStoreElimination/memintrinsics.ll
test/Transforms/DeadStoreElimination/simple.ll