llvm-project/llvm/test/Transforms/MemCpyOpt
Dan Gohman aa3922819e [memcpyopt] Teach memcpyopt to optimize across basic blocks
This teaches memcpyopt to make a non-local memdep query when a local query
indicates that the dependency is non-local. This notably allows it to
eliminate many more llvm.memcpy calls in common Rust code, often by 20-30%.

This is r319482 and r319483, along with fixes for PR35519: fix the 
optimization that merges stores into memsets to preserve cached memdep
info, and fix memdep's non-local caching strategy to not assume that larger
queries are always more conservative than smaller ones.

Fixes PR28958 and PR35519.

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

llvm-svn: 321138
2017-12-20 01:36:25 +00:00
..
2008-02-24-MultipleUseofSRet.ll
2008-03-13-ReturnSlotBitcast.ll
2011-06-02-CallSlotOverwritten.ll
align.ll
atomic.ll
callslot_aa.ll
callslot_deref.ll
callslot_throw.ll
capturing-func.ll
crash.ll
fca2memcpy.ll
form-memset.ll
invariant.start.ll
lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
load-store-to-memcpy.ll
loadstore-sret.ll
memcpy-invoke-memcpy.ll [memcpyopt] Teach memcpyopt to optimize across basic blocks 2017-12-20 01:36:25 +00:00
memcpy-to-memset-with-lifetimes.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
memcpy-to-memset.ll
memcpy-undef.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
memcpy.ll Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
memmove.ll
memset-memcpy-redundant-memset.ll
memset-memcpy-to-2x-memset.ll
merge-into-memset.ll [memcpyopt] Teach memcpyopt to optimize across basic blocks 2017-12-20 01:36:25 +00:00
mixed-sizes.ll [memcpyopt] Teach memcpyopt to optimize across basic blocks 2017-12-20 01:36:25 +00:00
nonlocal-memcpy-memcpy.ll [memcpyopt] Teach memcpyopt to optimize across basic blocks 2017-12-20 01:36:25 +00:00
nontemporal.ll
pr29105.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
profitable-memset.ll
smaller.ll
sret.ll