llvm-project/llvm/test/Transforms/FunctionAttrs
Justin Lebar 9d94397859 [attrs] Handle convergent CallSites.
Summary:
Previously we had a notion of convergent functions but not of convergent
calls.  This is insufficient to correctly analyze calls where the target
is unknown, e.g. indirect calls.

Now a call is convergent if it targets a known-convergent function, or
if it's explicitly marked as convergent.  As usual, we can remove
convergent where we can prove that no convergent operations are
performed in the call.

Originally landed as r261544, then reverted in r261544 for (incidental)
build breakage.  Re-landed here with no changes.

Reviewers: chandlerc, jingyue

Subscribers: llvm-commits, tra, jhen, hfinkel

Differential Revision: http://reviews.llvm.org/D17739

llvm-svn: 263481
2016-03-14 20:18:54 +00:00
..
2008-09-03-Mutual.ll
2008-09-03-ReadNone.ll Revert "Revert "[FunctionAttrs] Identify norecurse functions"" 2015-11-12 10:55:20 +00:00
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 Revert "Revert "[FunctionAttrs] Identify norecurse functions"" 2015-11-12 10:55:20 +00:00
atomic.ll Revert "Revert "[FunctionAttrs] Identify norecurse functions"" 2015-11-12 10:55:20 +00:00
convergent.ll [attrs] Handle convergent CallSites. 2016-03-14 20:18:54 +00:00
nocapture.ll [CaptureTracking] Add a test case for pointer cmpxchg 2016-02-19 00:13:09 +00:00
nonnull.ll [FunctionAttr] Infer nonnull attributes on returns 2015-08-31 19:44:38 +00:00
norecurse.ll [attrs] Move the norecurse deduction to operate on the node set rather 2016-02-13 08:47:51 +00:00
noreturn.ll
operand-bundles-scc.ll [FunctionAttrs] Fix SCC logic around operand bundles 2016-02-09 18:40:40 +00:00
optnone-simple.ll
optnone.ll [attrs] Move the norecurse deduction to operate on the node set rather 2016-02-13 08:47:51 +00:00
out-of-bounds-iterator-bug.ll [FunctionAttrs] Fix an iterator wraparound bug 2015-11-07 01:55:53 +00:00
readattrs.ll [PM] Port the PostOrderFunctionAttrs pass to the new pass manager and 2016-02-18 11:03:11 +00:00
readnone.ll Remove conflicting attributes before adding deduced readonly/readnone 2015-05-25 19:46:38 +00:00