HomePhabricator

[attrs] Handle convergent CallSites.

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

Details

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