llvm-project/llvm/test/Transforms/MemCpyOpt
Anna Thomas 037e540f08 [AliasAnalysis] Treat invariant.start as read-memory
Summary:
We teach alias analysis that invariant.start is readonly.
This helps with GVN and memcopy optimizations that currently treat.
invariant.start as a clobber.
We need to treat this as readonly, so that DSE does not incorrectly
remove stores prior to the invariant.start

Reviewers: sanjoy, reames, majnemer, dberlin

Subscribers: llvm-commits

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

llvm-svn: 278138
2016-08-09 17:18:05 +00:00
..
2008-02-24-MultipleUseofSRet.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2008-03-13-ReturnSlotBitcast.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2011-06-02-CallSlotOverwritten.ll
align.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
atomic.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
callslot_aa.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
callslot_deref.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
callslot_throw.ll [MemCpyOpt] Don't perform callslot optimization across may-throw calls 2016-05-26 19:24:24 +00:00
capturing-func.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
crash.ll
fca2memcpy.ll Imporove load to store => memcpy 2016-03-14 22:52:27 +00:00
form-memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
invariant.start.ll [AliasAnalysis] Treat invariant.start as read-memory 2016-08-09 17:18:05 +00:00
lifetime.ll [MemCpyOpt] Do not exchange llvm.lifetime.start and llvm.memcpy 2016-06-08 19:42:32 +00:00
loadstore-sret.ll [MemCpyOpt] Don't perform callslot optimization across may-throw calls 2016-05-26 19:24:24 +00:00
memcpy-to-memset-with-lifetimes.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy-to-memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy-undef.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memmove.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset-memcpy-redundant-memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset-memcpy-to-2x-memset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
nontemporal.ll [MemCpyOpt] Fix wrong merging adjacent nontemporal stores into memset calls. 2015-10-09 10:53:41 +00:00
profitable-memset.ll [MemCpyOpt] Use MaxIntSize in byte instead of bit 2016-05-13 16:52:24 +00:00
smaller.ll [PM] Port MemCpyOpt to the new PM. 2016-06-14 02:44:55 +00:00
sret.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00