[llvm] [OpenMP] Remove hack around missing atomic load (PR #122781)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 13 12:07:21 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-offload
Author: Joseph Huber (jhuber6)
<details>
<summary>Changes</summary>
Summary:
We used to do a fetch add of zero to approximate a load. This is because
the NVPTX backend didn't handle this properly. It's not an issue anymore
so simply use the proper atomic builtin.
---
Full diff: https://github.com/llvm/llvm-project/pull/122781.diff
1 Files Affected:
- (modified) offload/DeviceRTL/include/Synchronization.h (+1-1)
``````````diff
diff --git a/offload/DeviceRTL/include/Synchronization.h b/offload/DeviceRTL/include/Synchronization.h
index e1968675550d49..a4d4fc08837b29 100644
--- a/offload/DeviceRTL/include/Synchronization.h
+++ b/offload/DeviceRTL/include/Synchronization.h
@@ -66,7 +66,7 @@ V add(Ty *Address, V Val, atomic::OrderingTy Ordering) {
template <typename Ty, typename V = utils::remove_addrspace_t<Ty>>
V load(Ty *Address, atomic::OrderingTy Ordering) {
- return add(Address, Ty(0), Ordering);
+ return __scoped_atomic_load_n(Address, Ordering, __MEMORY_SCOPE_DEVICE);
}
template <typename Ty, typename V = utils::remove_addrspace_t<Ty>>
``````````
</details>
https://github.com/llvm/llvm-project/pull/122781
More information about the llvm-commits
mailing list