llvm-project/llvm/test/Transforms/MemCpyOpt
Nikita Popov 3e37543111 [MemCpyOpt] Move GEP during call slot optimization
When performing a call slot optimization to a GEP destination, it
will currently usually fail, because the GEP is directly before the
memcpy and as such does not dominate the call. We should move it
above the call if that satisfies the domination requirement.

I think that a constant-index GEP is the only useful thing to move
here, as otherwise isDereferenceablePointer couldn't look through
it anyway. As such I'm not trying to generalize this further.

Differential Revision: https://reviews.llvm.org/D89623
2020-10-22 20:40:56 +02:00
..
2008-02-24-MultipleUseofSRet.ll Recommit "[DSE] Switch to MemorySSA-backed DSE by default." 2020-10-16 09:02:53 +01:00
2008-03-13-ReturnSlotBitcast.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
2011-06-02-CallSlotOverwritten.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
aggregate-type-crash.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
align.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
atomic.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
callslot.ll [MemCpyOpt] Move GEP during call slot optimization 2020-10-22 20:40:56 +02:00
callslot_aa.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
callslot_deref.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
callslot_throw.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
capturing-func.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
crash.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
fca2memcpy.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
form-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
invariant.start.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
lifetime.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
load-store-to-memcpy.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
loadstore-sret.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memcpy-invoke-memcpy.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memcpy-to-memset-with-lifetimes.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memcpy-to-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memcpy-undef.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memcpy.ll [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
memmove.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memset-memcpy-oversized.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memset-memcpy-redundant-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
memset-memcpy-to-2x-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
merge-into-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
mixed-sizes.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
non-integral.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
nonlocal-memcpy-memcpy.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
nontemporal.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
pr29105.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
pr37967.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
preserve-memssa.ll [MemCpyOpt] Fix MemorySSA preservation 2020-10-13 21:39:09 +02:00
process_store.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
profitable-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
smaller.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
sret.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
stackrestore.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
store-to-memset-is-nonzero-type.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
store-to-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00
vscale-memset.ll [MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt 2020-10-13 21:45:05 +02:00