llvm-project/llvm/test/Transforms/MemCpyOpt
Nikita Popov be9889b350 [MemorySSA] Don't treat lifetime.end as NoAlias
MemorySSA currently treats lifetime.end intrinsics as not aliasing
anything. This breaks MemorySSA-based MemCpyOpt, because we'll happily
move a read of a pointer below a lifetime.end intrinsic, as no clobber
is reported.

I think the MemorySSA modelling here isn't correct: lifetime.end(p)
has approximately the same effect as doing a memcpy(p, undef), and
should be treated as a clobber.

This patch removes the special handling of lifetime.end, leaving
alias analysis to handle it appropriately.

Differential Revision: https://reviews.llvm.org/D95763
2021-02-04 20:58:28 +01:00
..
2008-02-24-MultipleUseofSRet.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
2008-03-13-ReturnSlotBitcast.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
2011-06-02-CallSlotOverwritten.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
aa-recursion-assertion-failure.ll [BasicAA] Move assumption tracking into AAQI 2021-01-17 10:34:35 +01:00
aggregate-type-crash.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
align.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
atomic.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
callslot.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
callslot_aa.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
callslot_badaa.ll [MemCpyOpt] Correctly merge alias scopes during call slot optimization 2020-12-03 09:23:37 -08:00
callslot_deref.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
callslot_throw.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
capturing-func.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
crash.ll [ValueTracking][MemCpyOpt] avoid crash on inttoptr with vector pointer type (PR48075) 2020-11-22 12:54:18 -05:00
fca2memcpy.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
form-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
invariant.start.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
lifetime.ll [MemorySSA] Don't treat lifetime.end as NoAlias 2021-02-04 20:58:28 +01:00
load-store-to-memcpy.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
loadstore-sret.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
memcpy-invoke-memcpy.ll [FileCheck] Enforce --allow-unused-prefixes=false for llvm/test/Transforms 2020-12-09 08:51:38 -08:00
memcpy-to-memset-with-lifetimes.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
memcpy-to-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
memcpy-undef.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
memcpy.ll [Local] Treat calls that may not return as being alive. 2021-01-23 16:05:14 +00:00
memmove.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
memset-memcpy-oversized.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
memset-memcpy-redundant-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
memset-memcpy-to-2x-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
merge-into-memset.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
mixed-sizes.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
non-integral.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
nonlocal-memcpy-memcpy.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
nontemporal.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
pr29105.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
pr37967.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
preserve-memssa.ll [MemCpyOpt] Fix MemorySSA preservation 2020-10-13 21:39:09 +02:00
process_store.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
profitable-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
smaller.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
sret.ll OpaquePtr: Update more tests to use typed sret 2020-11-20 20:08:43 -05:00
stackrestore.ll [MemCpyOpt] Port to MemorySSA 2020-12-01 17:57:41 +01:00
store-to-memset-is-nonzero-type.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
store-to-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
vscale-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00