llvm/lib/Transforms
Justin Lebar 4644890a51 [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.

Reviewers: chandlerc, jingyue

Subscribers: hfinkel, jhen, tra, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261544 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-22 17:51:35 +00:00
..
Hello Remove autoconf support 2016-01-26 21:29:08 +00:00
InstCombine [attrs] Handle convergent CallSites. 2016-02-22 17:51:35 +00:00
Instrumentation [sanitizer-coverage] implement -fsanitize-coverage=trace-pc. This is similar to trace-bb, but has a different API. We already use the equivalent flag in GCC for Linux kernel fuzzing. We may be able to use this flag with AFL too 2016-02-17 21:34:43 +00:00
IPO [attrs] Handle convergent CallSites. 2016-02-22 17:51:35 +00:00
ObjCARC ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
Scalar Allow setting MaxRerollIterations above 16 2016-02-22 09:38:28 +00:00
Utils Fix some abuse of auto flagged by clang's -Wrange-loop-analysis. 2016-02-22 13:11:58 +00:00
Vectorize ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
CMakeLists.txt
LLVMBuild.txt