This patch adds initial argmemonly inference, by checking the underlying
objects of locations returned by MemoryLocation.
I think this should cover most cases, except function calls to other
argmemonly functions.
I'm not sure if there's a reason why we don't infer those yet.
Additional argmemonly can improve codegen in some cases. It also makes
it easier to come up with a C reproducer for
|
||
|---|---|---|
| .. | ||
| 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 | ||