llvm/test/Transforms/DeadStoreElimination
Hal Finkel 9d85eff56a [DSE] Remove no-data-layout-only type-based overlap checking
DSE's overlap checking contained special logic, used only when no DataLayout
was available, which inferred a complete overwrite when the pointee types were
equal. This logic seems fine for regular loads/stores, but does not work for
memcpy and friends. Instead of fixing this, I'm just removing it.
Philosophically, transformations should not contain enhanced behavior used only
when data layout is lacking (data layout should be strictly additive), and
maintaining these rarely-tested code paths seems not worthwhile at this stage.

Credit to Aliaksei Zasenka for the bug report and the diagnosis. The test case
(slightly reduced from that provided by Aliaksei) replaces the original
contents of test/Transforms/DeadStoreElimination/no-targetdata.ll -- a few
other tests have been updated to have a data layout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220035 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-17 11:56:00 +00:00
..
2011-03-25-DSEMiscompile.ll * The DSE code that tested for overlapping needed to take into account the fact 2011-03-30 21:37:19 +00:00
2011-09-06-EndOfFunction.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-09-06-MemCpy.ll Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's. 2011-09-06 18:14:09 +00:00
atomic.ll Relax the constraint more in MemoryDependencyAnalysis.cpp 2014-08-29 20:32:58 +00:00
const-pointers.ll [DSE] Remove no-data-layout-only type-based overlap checking 2014-10-17 11:56:00 +00:00
crash.ll rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
cs-cs-aliasing.ll Improve BasicAA CS-CS queries (redux) 2014-07-17 01:28:25 +00:00
dominate.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
free.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
inst-limits.ll [DSE] Remove no-data-layout-only type-based overlap checking 2014-10-17 11:56:00 +00:00
libcalls.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
lifetime.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
memintrinsics.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
no-targetdata.ll [DSE] Remove no-data-layout-only type-based overlap checking 2014-10-17 11:56:00 +00:00
OverwriteStoreEnd.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
PartialStore.ll Teach GetUnderlyingObject / BasicAA about addrspacecast 2014-07-15 00:56:40 +00:00
pr11390.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
simple.ll Teach GetUnderlyingObject / BasicAA about addrspacecast 2014-07-15 00:56:40 +00:00