llvm-project/llvm/test/Transforms/MemCpyOpt
Olle Fredriksson f5446b769a [MemCpyOpt] Allow variable lengths in memcpy optimizer
This makes the memcpy-memcpy and memcpy-memset optimizations work for
variable sizes as long as they are equal, relaxing the old restriction
that they are constant integers. If they're not equal, the old
requirement that they are constant integers with certain size
restrictions is used.

The implementation works by pushing the length tests further down in the
code, which reveals some places where it's enough that the lengths are
equal (but not necessarily constant).

Differential Revision: https://reviews.llvm.org/D100870
2021-04-21 23:23:38 +02: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
byval-readnone.ll [MemCpyOpt] Fix handling of readnone byval arguments 2021-02-22 18:48:31 +01: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 Reland "[Libcalls, Attrs] Annotate libcalls with noundef" 2021-02-20 06:18:48 +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-in-loop.ll [MemorySSA] Don't bail on phi starting access 2021-03-13 10:53:13 +01: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 Reland "[Libcalls, Attrs] Annotate libcalls with noundef" 2021-02-20 06:18:48 +01:00
memcpy-to-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
memcpy-undef.ll [MemCpyOpt] Handle read from lifetime.start with offset 2021-03-13 20:38:09 +01:00
memcpy.ll [tests] Refresh a bunch of autogen test to adjust for format changes 2021-03-22 10:41:39 -07: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] Use AA to check for MustAlias between memset and memcpy 2021-03-13 11:41:15 +01: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 Reland "[Libcalls, Attrs] Annotate libcalls with noundef" 2021-02-20 06:18:48 +01:00
pr37967.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
preserve-memssa.ll [MemCpyOpt] Don't generate zero-size memset 2021-03-13 11:41:15 +01: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 [tests] Refresh a bunch of autogen test to adjust for format changes 2021-03-22 10:41:39 -07: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
variable-sized-memcpy-memcpy.ll [MemCpyOpt] Allow variable lengths in memcpy optimizer 2021-04-21 23:23:38 +02:00
variable-sized-memcpy-uninit.ll [MemCpyOpt] Allow variable lengths in memcpy optimizer 2021-04-21 23:23:38 +02:00
variable-sized-memset-memcpy.ll [MemCpyOpt] Allow variable lengths in memcpy optimizer 2021-04-21 23:23:38 +02:00
vscale-memset.ll [MemCpyOpt] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00