forked from OSchip/llvm-project
412141663c
The previous version of the patch would incorrect convert an existing argmemonly attribute into an inaccessiblemem_or_argmemonly attribute. ----- This updates checkFunctionMemoryAccess() to infer a precise FunctionModRefBehavior, rather than an approximation split into read/write and argmemonly. Afterwards, we still map this back to imprecise function attributes. This still allows us to infer some cases that we previously did not handle, namely inaccessiblememonly and inaccessiblemem_or_argmemonly. In practice, this means we get better memory attributes in the presence of intrinsics like @llvm.assume. Differential Revision: https://reviews.llvm.org/D134527 |
||
---|---|---|
.. | ||
2008-09-03-Mutual.ll | ||
2008-09-03-ReadNone.ll | ||
2008-09-03-ReadOnly.ll | ||
2008-09-13-VolatileRead.ll | ||
2008-12-29-Constant.ll | ||
2009-01-02-LocalStores.ll | ||
2010-10-30-volatile.ll | ||
arg_returned.ll | ||
argmemonly.ll | ||
assume.ll | ||
atomic.ll | ||
comdat-ipo.ll | ||
convergent.ll | ||
incompatible_fn_attrs.ll | ||
int_sideeffect.ll | ||
invalidate.ll | ||
naked_functions.ll | ||
nocapture.ll | ||
nofree-attributor.ll | ||
nofree.ll | ||
nonnull-global.ll | ||
nonnull.ll | ||
norecurse.ll | ||
noreturn.ll | ||
nosync.ll | ||
nounwind.ll | ||
operand-bundles-scc.ll | ||
optnone-simple.ll | ||
optnone.ll | ||
out-of-bounds-iterator-bug.ll | ||
read-write-scc.ll | ||
readattrs.ll | ||
readnone.ll | ||
returned.ll | ||
stats.ll | ||
willreturn-callsites.ll | ||
willreturn.ll | ||
writeonly.ll |