1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib/Target/NVPTX
Jonas Hahnfeld ae3819e262 [NVPTX] Select atomic loads and stores
According to PTX ISA .volatile has the same memory synchronization
semantics as .relaxed.sys, so it can be used to implement monotonic
atomic loads and stores. This is important for OpenMP's atomic
construct where
 - 'read's and 'write's are lowered to atomic loads and stores, and
 - an update of float or double types are lowered into a cmpxchg loop.
(Note that PTX could do better because it has atom.add.f{32,64} but
LLVM's atomicrmw instruction only allows integer types.)

Higher levels of atomicity (like acquire and release) need additional
synchronization properties which were added with PTX ISA 6.0 / sm_70.
So using these instructions still results in an error.

Differential Revision: https://reviews.llvm.org/D50391

llvm-svn: 339316
2018-08-09 07:45:49 +00:00
..
InstPrinter
MCTargetDesc Revert "Temporarily revert "[DEBUG] Initial adaptation of NVPTX target for debug info emission."" 2018-05-18 03:13:08 +00:00
TargetInfo
cl_common_defines.h
CMakeLists.txt Consistently sort add_subdirectory calls in lib/Target/*/CMakeLists.txt 2018-04-23 12:49:34 +00:00
LLVMBuild.txt
ManagedStringPool.h
NVPTX.h [NVPTX] Handle __nvvm_reflect("__CUDA_ARCH"). 2018-08-03 18:05:24 +00:00
NVPTX.td [NVPTX, CUDA] Added support for m8n32k16 and m32n8k16 variants of wmma instructions. 2018-04-18 21:51:48 +00:00
NVPTXAllocaHoisting.cpp
NVPTXAllocaHoisting.h
NVPTXAsmPrinter.cpp [DEBUGINFO, NVPTX] Emit correct debug information for local variables. 2018-07-26 16:29:52 +00:00
NVPTXAsmPrinter.h Remove trailing space 2018-07-30 19:41:25 +00:00
NVPTXAssignValidGlobalNames.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
NVPTXFrameLowering.cpp [DEBUGINFO, NVPTX] Emit correct debug information for local variables. 2018-07-26 16:29:52 +00:00
NVPTXFrameLowering.h [DEBUGINFO, NVPTX] Emit correct debug information for local variables. 2018-07-26 16:29:52 +00:00
NVPTXGenericToNVVM.cpp
NVPTXImageOptimizer.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
NVPTXInstrFormats.td
NVPTXInstrInfo.cpp [NVPTX] Delete dead code 2018-06-28 20:05:35 +00:00
NVPTXInstrInfo.h [NVPTX] Delete dead code 2018-06-28 20:05:35 +00:00
NVPTXInstrInfo.td [NVPTX] Added a feature to use short pointers for const/local/shared AS. 2018-05-09 23:46:19 +00:00
NVPTXIntrinsics.td [TableGen] Support multi-alternative pattern fragments 2018-07-13 13:18:00 +00:00
NVPTXISelDAGToDAG.cpp [NVPTX] Select atomic loads and stores 2018-08-09 07:45:49 +00:00
NVPTXISelDAGToDAG.h [NVPTX] Delete dead code 2018-06-28 20:05:35 +00:00
NVPTXISelLowering.cpp [NVPTX] Expand v2f16 INSERT_VECTOR_ELT 2018-07-03 20:40:04 +00:00
NVPTXISelLowering.h
NVPTXLowerAggrCopies.cpp
NVPTXLowerAggrCopies.h
NVPTXLowerAlloca.cpp
NVPTXLowerArgs.cpp
NVPTXMachineFunctionInfo.h Remove trailing space 2018-07-30 19:41:25 +00:00
NVPTXMCExpr.cpp
NVPTXMCExpr.h
NVPTXPeephole.cpp
NVPTXPrologEpilogPass.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
NVPTXRegisterInfo.cpp
NVPTXRegisterInfo.h
NVPTXRegisterInfo.td
NVPTXReplaceImageHandles.cpp
NVPTXSubtarget.cpp
NVPTXSubtarget.h [NVPTX] Delete dead code 2018-06-28 20:05:35 +00:00
NVPTXTargetMachine.cpp [NVPTX] Handle __nvvm_reflect("__CUDA_ARCH"). 2018-08-03 18:05:24 +00:00
NVPTXTargetMachine.h [NVPTX] Added a feature to use short pointers for const/local/shared AS. 2018-05-09 23:46:19 +00:00
NVPTXTargetObjectFile.h Revert "Temporarily revert "[DEBUG] Initial adaptation of NVPTX target for debug info emission."" 2018-05-18 03:13:08 +00:00
NVPTXTargetTransformInfo.cpp
NVPTXTargetTransformInfo.h [NVPTX] Ignore target-cpu and -features for inlining 2018-06-17 09:55:20 +00:00
NVPTXUtilities.cpp
NVPTXUtilities.h
NVVMIntrRange.cpp
NVVMReflect.cpp [NVPTX] Handle __nvvm_reflect("__CUDA_ARCH"). 2018-08-03 18:05:24 +00:00