[NVPTX] Set the atomic inling threshold when targeting NVPTX directly
authorJoseph Huber <jhuber6@vols.utk.edu>
Thu, 23 Mar 2023 19:15:01 +0000 (14:15 -0500)
committerJoseph Huber <jhuber6@vols.utk.edu>
Thu, 23 Mar 2023 21:30:07 +0000 (16:30 -0500)
commitaf54d1e852850edcc7b9485851320d9ebf1be4fe
tree8ee5bc608bfff8f6ad612f0cc35db9425a8e286a
parent3111784ff7d3d51a9e981b1a0bbc8f6511c34d25
[NVPTX] Set the atomic inling threshold when targeting NVPTX directly

Since Clang 16.0.0 users can target the `NVPTX` architecture directly
via `--target=nvptx64-nvidia-cuda`. However, this does not set the
atomic inlining size correctly. This leads to spurious warnings and
emission of runtime atomics that are never implemented. This patch
ensures that we set this to the appropriate pointer width. This will
always be 64 in the future as `nvptx64` will only be supported moving
forward.

Fixes: https://github.com/llvm/llvm-project/issues/61410

Reviewed By: tra

Differential Revision: https://reviews.llvm.org/D146750
clang/lib/Basic/Targets/NVPTX.cpp
clang/test/CodeGen/atomics-inlining.c