llvm-project/llvm/lib/Transforms/InstCombine
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
..
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
InstCombineAddSub.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
InstCombineAndOrXor.cpp [InstCombine] transform bitcasted bitwise logic ops with constants (PR26702) 2016-03-03 19:19:04 +00:00
InstCombineCalls.cpp [attrs] Handle convergent CallSites. 2016-03-14 20:18:54 +00:00
InstCombineCasts.cpp Revert "[InstCombine] Combine A->B->A BitCast" 2016-03-08 07:09:46 +00:00
InstCombineCompares.cpp [ValueTracking] Extract isKnownPositive [NFCI] 2016-03-09 21:31:47 +00:00
InstCombineInternal.h Remove PreserveNames template parameter from IRBuilder 2016-03-13 21:05:13 +00:00
InstCombineLoadStoreAlloca.cpp [InstCombine] Use Twines to generate names. 2016-03-11 10:20:56 +00:00
InstCombineMulDivRem.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
InstCombinePHI.cpp Fixed typo in r260530 2016-02-11 16:46:13 +00:00
InstCombineSelect.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineShifts.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineSimplifyDemanded.cpp function names start with a lowercase letter; NFC 2016-02-01 22:23:39 +00:00
InstCombineVectorOps.cpp Fix an issue where fast math flags were dropped during scalarization. 2016-03-01 19:35:52 +00:00
InstructionCombining.cpp Remove PreserveNames template parameter from IRBuilder 2016-03-13 21:05:13 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00