HomePhabricator

[attrs] Handle convergent CallSites.

Authored by jlebar on Mar 14 2016, 1:18 PM.

Description

[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

Details

Committed
jlebarMar 14 2016, 1:18 PM
Differential Revision
D17739: [attrs] Handle convergent CallSites.
Parents
rGca35b090f808: [docs] "Straightforward" is one word.
Branches
Unknown
Tags
Unknown