[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>
Tue, 27 Apr 2021 00:12:12 +0000 (20:12 -0400)
commit7aa3cad46ac3258f9b069fbdaad8b73e280ebfbb
treef3b021493bf0be010976580dbadcb202eefed45c
parent2509f9fbad0d37e3e5fea934c0ae7af3877ba4ae
[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]