forked from OSchip/llvm-project
e75a2dfe20
There's a potential change in dereferenceability attribute semantics in the nearish future. See llvm-dev thread "RFC: Decomposing deref(N) into deref(N) + nofree" and D99100 for context. This change simply adds appropriate attributes to tests to keep transform logic exercised under both old and new/proposed semantics. Note that for many of these cases, O3 would infer exactly these attributes on the test IR. This change handles the idiomatic pattern of a dereferenceable object being passed to a call which can not free that memory. There's a couple other tests which need more one-off attention, they'll be handled in another change. |
||
---|---|---|
.. | ||
2008-02-24-MultipleUseofSRet.ll | ||
2008-03-13-ReturnSlotBitcast.ll | ||
2011-06-02-CallSlotOverwritten.ll | ||
aa-recursion-assertion-failure.ll | ||
aggregate-type-crash.ll | ||
align.ll | ||
atomic.ll | ||
byval-readnone.ll | ||
callslot.ll | ||
callslot_aa.ll | ||
callslot_badaa.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-in-loop.ll | ||
memcpy-invoke-memcpy.ll | ||
memcpy-to-memset-with-lifetimes.ll | ||
memcpy-to-memset.ll | ||
memcpy-undef.ll | ||
memcpy.ll | ||
memmove.ll | ||
memset-memcpy-oversized.ll | ||
memset-memcpy-redundant-memset.ll | ||
memset-memcpy-to-2x-memset.ll | ||
merge-into-memset.ll | ||
mixed-sizes.ll | ||
non-integral.ll | ||
nonlocal-memcpy-memcpy.ll | ||
nontemporal.ll | ||
pr29105.ll | ||
pr37967.ll | ||
preserve-memssa.ll | ||
process_store.ll | ||
profitable-memset.ll | ||
smaller.ll | ||
sret.ll | ||
stackrestore.ll | ||
store-to-memset-is-nonzero-type.ll | ||
store-to-memset.ll | ||
variable-sized-memcpy-memcpy.ll | ||
variable-sized-memcpy-uninit.ll | ||
variable-sized-memset-memcpy.ll | ||
vscale-memset.ll |