llvm-project/llvm/test/Transforms/FunctionAttrs
Nikita Popov 412141663c Reapply [FunctionAttrs] Infer precise FMRB
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
2022-09-29 14:02:15 +02:00
..
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 Reapply [FunctionAttrs] Infer precise FMRB 2022-09-29 14:02:15 +02:00
assume.ll
atomic.ll [FunctionAttrs] Infer argmemonly . 2022-03-16 10:24:33 +00:00
comdat-ipo.ll
convergent.ll
incompatible_fn_attrs.ll
int_sideeffect.ll
invalidate.ll
naked_functions.ll
nocapture.ll
nofree-attributor.ll
nofree.ll [FunctionAttrs] Infer argmemonly . 2022-03-16 10:24:33 +00:00
nonnull-global.ll
nonnull.ll
norecurse.ll [RPOFuncAttrs] Fix norecurse detection 2022-06-18 12:20:10 -07:00
noreturn.ll [Coroutines] Convert coroutine.presplit to enum attr 2022-06-14 14:23:46 +08:00
nosync.ll [FunctionAttrs] Use MemoryLocation::getOrNone() when infering memory attrs 2022-09-23 13:56:55 +02:00
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 [FunctionAttrs] Infer argmemonly . 2022-03-16 10:24:33 +00:00
willreturn-callsites.ll [NFCI] Fixed missing colon in CHECK directives - part 2 2022-04-03 14:42:59 +02:00
willreturn.ll
writeonly.ll