1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib
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
..
Analysis [InstSimplify] fold fsub+fadd with common operand 2018-08-07 20:32:55 +00:00
AsmParser [DEBUGINFO] Disable emission of the dwarf sections, but allow directives. 2018-08-01 19:38:20 +00:00
BinaryFormat [dwarfdump] Add pretty printer for accelerator table based on Atom. 2018-07-13 17:21:51 +00:00
Bitcode [NFC] Fix typo 2018-08-06 05:03:21 +00:00
CodeGen [DAGCombiner] loosen constraints for fsub+fadd fold 2018-08-08 23:04:43 +00:00
DebugInfo [DWARF] Verifier now handles .debug_types sections. 2018-08-08 23:50:22 +00:00
Demangle [MS Demangler] Create a new backref context for template instantiations. 2018-08-08 17:17:04 +00:00
ExecutionEngine [ORC] Remove an incorrect use of 'cantFail'. 2018-08-05 23:55:35 +00:00
Fuzzer
FuzzMutate Remove trailing space 2018-07-30 19:41:25 +00:00
IR [DebugInfo] Refactor DbgInfoIntrinsic class hierarchy. 2018-08-06 03:59:47 +00:00
IRReader
LineEditor
Linker [NFC] Remove an empty line. 2018-07-27 06:50:45 +00:00
LTO Remove trailing space 2018-07-30 19:41:25 +00:00
MC [DWARF] Unclamp line table version on Darwin for v5 and later. 2018-08-08 21:16:50 +00:00
Object [WASM] Fix overflow when reading custom section 2018-08-08 16:34:03 +00:00
ObjectYAML [yaml2obj] - Add a support for changing EntSize. 2018-08-07 08:11:38 +00:00
Option Re-revert "[Option] Fix PR37006 prefix choice in findNearest" 2018-05-19 16:21:01 +00:00
Passes Revert "[GVNHoist] Re-enable GVNHoist by default" 2018-07-30 20:07:33 +00:00
ProfileData [Coverage] Ignore 'unused' functions with non-zero execution counts 2018-08-07 22:25:36 +00:00
Support [ADT] Normalize empty triple components 2018-08-08 22:23:57 +00:00
TableGen Remove trailing space 2018-07-30 19:41:25 +00:00
Target [NVPTX] Select atomic loads and stores 2018-08-09 07:45:49 +00:00
Testing [LLVMTestingSupport] Add explicit linkage to LLVMSupport 2018-04-08 06:49:17 +00:00
ToolDrivers Give llvm-lib rudimentary help output. 2018-07-14 02:29:44 +00:00
Transforms [NFC] ConstantMerge: don't insert when find should be used 2018-08-09 04:17:48 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] Improve error reporting when loading traces 2018-08-07 04:42:39 +00:00
CMakeLists.txt
LLVMBuild.txt