aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/InMemoryModuleCache.cpp
diff options
context:
space:
mode:
authorAkshay Deodhar <adeodhar@nvidia.com>2025-02-24 10:13:23 -0800
committerGitHub <noreply@github.com>2025-02-24 10:13:23 -0800
commit9638d08af96c4cb8cf16785eed92179b2658bdfe (patch)
treeb398714963b14beca3c388e8d822e92791431b66 /clang/lib/Serialization/InMemoryModuleCache.cpp
parentd9d1f241f27bab3c7b8914196316a6e6202cc61e (diff)
downloadllvm-9638d08af96c4cb8cf16785eed92179b2658bdfe.zip
llvm-9638d08af96c4cb8cf16785eed92179b2658bdfe.tar.gz
llvm-9638d08af96c4cb8cf16785eed92179b2658bdfe.tar.bz2
[NVPTX] Support for memory orderings for cmpxchg (#126159)
So far, all cmpxchg instructions were lowered to atom.cas. This change adds support for memory orders in lowering. Specifically: - For cmpxchg which are emulated, memory ordering is enforced by adding fences around the emulation loops. - For cmpxchg which are lowered to PTX directly, where the memory order is supported in ptx, lower directly to the correct ptx instruction. - For seq_cst cmpxchg which are lowered to PTX directly, use a sequence (fence.sc; atom.cas.acquire) to provide the semantics that we want. Also adds tests for all possible combinations of (size, memory ordering, address space, SM/PTX versions) This also adds `atomicOperationOrderAfterFenceSplit` in TargetLowering, for specially handling seq_cst atomics.
Diffstat (limited to 'clang/lib/Serialization/InMemoryModuleCache.cpp')
0 files changed, 0 insertions, 0 deletions