1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Justin Lebar 881bba8e1c [NVPTX] Use different, convergent MIs for convergent calls.
Summary:
Calls sometimes need to be convergent.  This is already handled at the
LLVM IR level, but it also needs to be handled at the MI level.

Ideally we'd propagate convergence from instructions, down through the
selection DAG, and into MIs.  But this is Hard, and would affect
optimizations in the SDNs -- right now only SDNs with two operands have
any flags at all.

Instead, here's a much simpler hack: Add new opcodes for NVPTX for
convergent calls, and generate these when lowering convergent LLVM
calls.

Reviewers: jholewinski

Subscribers: jholewinski, chandlerc, joker.eph, jhen, tra, llvm-commits

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

llvm-svn: 262373
2016-03-01 19:24:03 +00:00
..
CMakeLists.txt Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
DAGCombiner.cpp DAGCombiner: Turn extract of bitcasted integer into truncate 2016-03-01 18:01:37 +00:00
FastISel.cpp [NFC] Replace several manual GEP loops with gep_type_iterator. 2016-01-20 00:26:52 +00:00
FunctionLoweringInfo.cpp Undo spurious change made in r256965 2016-01-07 04:31:35 +00:00
InstrEmitter.cpp [X86] Part 1 to fix x86-64 fp128 calling convention. 2015-12-03 22:02:40 +00:00
InstrEmitter.h
LegalizeDAG.cpp LegalizeDAG: Use correct ptr type when expanding unaligned load/store 2016-03-01 05:13:35 +00:00
LegalizeFloatTypes.cpp Do not try to use i8 and i16 versions of FP_TO_U/SINT soft float library calls 2015-12-15 12:55:50 +00:00
LegalizeIntegerTypes.cpp [mips] Promote the result of SETCC nodes to GPR width. 2016-03-01 10:08:01 +00:00
LegalizeTypes.cpp [mips] Promote the result of SETCC nodes to GPR width. 2016-03-01 10:08:01 +00:00
LegalizeTypes.h SelectionDAG: Cleanup integer bin op promotion functions. 2015-12-19 17:18:43 +00:00
LegalizeTypesGeneric.cpp [X86] Part 1 to fix x86-64 fp128 calling convention. 2015-12-03 22:02:40 +00:00
LegalizeVectorOps.cpp [CodeGen] Document and use getConstant's splat-building feature. NFC. 2016-02-15 18:07:29 +00:00
LegalizeVectorTypes.cpp Type legalizer for masked gather and scatter intrinsics. 2015-12-15 08:40:41 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
ScheduleDAGRRList.cpp rangify; NFCI 2016-02-03 22:44:14 +00:00
ScheduleDAGSDNodes.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:24:31 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp SelectionDAG: Use correct addrspace when lowering memcpy 2016-02-22 22:01:42 +00:00
SelectionDAGBuilder.cpp [NVPTX] Use different, convergent MIs for convergent calls. 2016-03-01 19:24:03 +00:00
SelectionDAGBuilder.h SelectionDAG: Lower some range metadata to AssertZext 2016-02-08 16:28:19 +00:00
SelectionDAGDumper.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:24:31 +00:00
SelectionDAGISel.cpp Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
SelectionDAGPrinter.cpp Make the SelectionDAG graph printer use SDNode::PersistentId labels. 2015-10-27 23:09:03 +00:00
SelectionDAGTargetInfo.cpp Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
StatepointLowering.cpp [StatepointLowering] Minor non-semantic cleanups 2016-02-19 19:37:07 +00:00
StatepointLowering.h [StatepointLowering] Change AllocatedStackSlots to use SmallBitVector 2016-02-19 17:15:26 +00:00
TargetLowering.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00