llvm-project/llvm/test/Analysis/MemorySSA
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
..
assume.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
atomic-clobber.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
basicaa-memcpy.ll [LangRef] Adjust guarantee for llvm.memcpy to also allow equal arguments. 2020-09-05 19:18:23 +01:00
constant-memory.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
cyclicphi.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
debugvalue.ll [BasicAA] Rename -disable-basicaa to -disable-basic-aa to be consistent with the canonical name "basic-aa" 2020-06-26 20:55:44 -07:00
debugvalue2.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
forward-unreachable.ll
function-clobber.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
function-mem-attrs.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
invalidate.ll
invariant-groups.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
lifetime-simple.ll [MemorySSA] Don't treat lifetime.end as NoAlias 2021-02-04 20:58:28 +01:00
load-invariant.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
loop-rotate-disablebasicaa.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
loop-rotate-inv-template.ll
loop-rotate-simplified-clone.ll
loop-rotate-valuemap.ll
loop-unswitch.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
loop_rotate_remove_trivial_phis.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
many-dom-backedge.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
many-doms.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
multi-edges.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
multiple-backedges-hal.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
multiple-locations.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
no-disconnected.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
noalias-scope-decl.ll [noalias.decl] Look through llvm.experimental.noalias.scope.decl 2021-01-19 20:09:42 +01:00
nondeterminism.ll
optimize-use.ll [MemorySSA] Report unoptimized as None, not MayAlias. 2020-09-15 23:58:53 -07:00
phi-translation.ll [MemorySSA] Add pointer decrement loop clobber test case. 2020-11-15 18:00:01 +00:00
pr28880.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
pr36883.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
pr39197.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
pr40037.ll
pr40038.ll
pr40509.ll For some tests targeting SystemZ, -march=z13 ---> -mcpu=z13 2020-07-29 19:18:01 -07:00
pr40749.ll
pr40749_2.ll [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
pr40754.ll
pr41254.ll
pr41640.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
pr41853.ll [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
pr42294.ll
pr42940.ll
pr43044.ll
pr43317.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
pr43320.ll
pr43426.ll
pr43427.ll [MemorySSA] Report unoptimized as None, not MayAlias. 2020-09-15 23:58:53 -07:00
pr43438.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
pr43493.ll
pr43540.ll
pr43541.ll
pr43569.ll [NewPM][opt] Run the "default" AA pipeline by default 2021-01-21 21:08:54 -08:00
pr43641.ll
pr44027.ll
pr44029.ll
pr45927.ll [NewPM] Fix pr45927.ll under NPM 2020-09-17 13:57:55 -07:00
pr45976.ll [MemorySSA] Verify clobbering within reachable blocks. 2020-10-16 17:46:28 -07:00
pr46275.ll Verify MemorySSA after all updates. 2020-06-11 18:48:41 -07:00
pr46574.ll [MemorySSA] Clean up single value phis. 2020-08-31 19:26:08 -07:00
print-dot-cfg-mssa.ll Reland: Introduce -dot-cfg-mssa option which creates dot-cfg style file with mssa comments included in source 2020-11-12 17:39:14 +00:00
ptr-const-mem.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
reduce_clobber_limit.ll
renamephis.ll
scalable-vec.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
simple_loop_unswitch_nontrivial.ll
unreachable.ll
update-remove-dead-blocks.ll [LSR] Preserve MSSA when using SplitCriticalEdge. 2020-09-21 09:51:26 +01:00
update_unroll.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00
volatile-clobber.ll [MSSA][NewPM] Handle tests with -print-memoryssa 2020-08-05 15:59:45 -07:00