forked from OSchip/llvm-project
![]() 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 |
||
---|---|---|
.. | ||
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 | ||
load-store-to-memcpy.ll | ||
loadstore-sret.ll | ||
memcpy-invoke-memcpy.ll | ||
memcpy-to-memset-with-lifetimes.ll | ||
memcpy-to-memset.ll | ||
memcpy-undef.ll | ||
memcpy.ll | ||
memmove.ll | ||
memset-memcpy-redundant-memset.ll | ||
memset-memcpy-to-2x-memset.ll | ||
merge-into-memset.ll | ||
mixed-sizes.ll | ||
nonlocal-memcpy-memcpy.ll | ||
nontemporal.ll | ||
pr29105.ll | ||
profitable-memset.ll | ||
smaller.ll | ||
sret.ll |