[llvm] [NVPTX] Add Volta Atomic SequentiallyConsistent Load and Store Operations (PR #98551)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 13:16:06 PDT 2024


================
@@ -106,15 +106,49 @@ enum LoadStore {
   isStoreShift = 6
 };
 
-namespace PTXLdStInstCode {
-enum MemorySemantic {
+// Extends LLVM AtomicOrdering with PTX Orderings:
+using OrderingUnderlyingType = unsigned int;
+enum class Ordering : OrderingUnderlyingType {
   NotAtomic = 0, // PTX calls these: "Weak"
-  Volatile = 1,
+  // Unordered = 1, // NVPTX maps LLVM Unorderd to Relaxed
   Relaxed = 2,
-  Acquire = 3,
-  Release = 4,
-  RelaxedMMIO = 5
+  // Consume = 3,   // Unimplemented in LLVM; NVPTX would map to "Acquire"
+  Acquire = 4,
----------------
gonzalobg wrote:

Good idea with the `static_assert`s, that would prevent this from breaking.
Since we have some orderings that extend AtomicOrdering and we have to set `LAST`, etc., I've left the integer values though. If a `static_assert` fail, we'll need to update this properly.

https://github.com/llvm/llvm-project/pull/98551


More information about the llvm-commits mailing list