[NVPTX] Enable lowering of atomics on local memory
authorWilliam S. Moses <gh@wsmoses.com>
Mon, 15 Mar 2021 18:27:06 +0000 (14:27 -0400)
committerWilliam S. Moses <gh@wsmoses.com>
Mon, 26 Apr 2021 23:27:27 +0000 (19:27 -0400)
commitfede99d386ec9e7bab2762aa16cb10c0513ae464
tree8c86c046c9cc0a26e24808278774cc02cbc24a8a
parenta41f076ef1d611fcd255514d0c19cb06375e49b2
[NVPTX] Enable lowering of atomics on local memory

LLVM does not have valid assembly backends for atomicrmw on local memory. However, as this memory is thread local, we should be able to lower this to the relevant load/store.

Differential Revision: https://reviews.llvm.org/D98650
llvm/include/llvm/Transforms/Scalar/LowerAtomic.h
llvm/lib/Target/NVPTX/CMakeLists.txt
llvm/lib/Target/NVPTX/NVPTXAtomicLower.cpp [new file with mode: 0644]
llvm/lib/Target/NVPTX/NVPTXAtomicLower.h [new file with mode: 0644]
llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
llvm/lib/Transforms/Scalar/LowerAtomic.cpp
llvm/test/CodeGen/NVPTX/atomic-lower-local.ll [new file with mode: 0644]