mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-30 23:20:54 +00:00
9d85eff56a
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 |
||
---|---|---|
.. | ||
2011-03-25-DSEMiscompile.ll | ||
2011-09-06-EndOfFunction.ll | ||
2011-09-06-MemCpy.ll | ||
atomic.ll | ||
const-pointers.ll | ||
crash.ll | ||
cs-cs-aliasing.ll | ||
dominate.ll | ||
free.ll | ||
inst-limits.ll | ||
libcalls.ll | ||
lifetime.ll | ||
memintrinsics.ll | ||
no-targetdata.ll | ||
OverwriteStoreEnd.ll | ||
PartialStore.ll | ||
pr11390.ll | ||
simple.ll |