@@ -717,10 +717,10 @@ static unsigned int getCodeAddrSpace(MemSDNode *N) {
717
717
struct OperationOrderings {
718
718
NVPTX::OrderingUnderlyingType InstrOrdering;
719
719
NVPTX::OrderingUnderlyingType FenceOrdering;
720
- OperationOrderings (NVPTX::Ordering o = NVPTX::Ordering::NotAtomic,
721
- NVPTX::Ordering f = NVPTX::Ordering::NotAtomic)
722
- : InstrOrdering(static_cast <NVPTX::OrderingUnderlyingType>(o )),
723
- FenceOrdering (static_cast <NVPTX::OrderingUnderlyingType>(f )) {}
720
+ OperationOrderings (NVPTX::Ordering O = NVPTX::Ordering::NotAtomic,
721
+ NVPTX::Ordering F = NVPTX::Ordering::NotAtomic)
722
+ : InstrOrdering(static_cast <NVPTX::OrderingUnderlyingType>(O )),
723
+ FenceOrdering (static_cast <NVPTX::OrderingUnderlyingType>(F )) {}
724
724
};
725
725
726
726
static OperationOrderings
@@ -734,6 +734,8 @@ getOperationOrderings(MemSDNode *N, const NVPTXSubtarget *Subtarget) {
734
734
// clang-format off
735
735
736
736
// Lowering for Load/Store Operations (note: AcquireRelease Loads or Stores error).
737
+ // Note: uses of Relaxed in the Atomic column of this table refer
738
+ // to LLVM AtomicOrdering::Monotonic.
737
739
//
738
740
// | Atomic | Volatile | Statespace | PTX sm_60- | PTX sm_70+ |
739
741
// |---------|----------|--------------------|------------|------------------------------|
@@ -1153,7 +1155,7 @@ bool NVPTXDAGToDAGISel::tryLoad(SDNode *N) {
1153
1155
case NVPTX::Ordering::SequentiallyConsistent: {
1154
1156
unsigned Op = Subtarget->hasMemoryOrdering ()
1155
1157
? NVPTX::atomic_thread_fence_seq_cst_sys
1156
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1158
+ : NVPTX::INT_MEMBAR_SYS ;
1157
1159
Chain = SDValue (CurDAG->getMachineNode (Op, dl, MVT::Other, Chain), 0 );
1158
1160
break ;
1159
1161
}
@@ -1316,7 +1318,7 @@ bool NVPTXDAGToDAGISel::tryLoadVector(SDNode *N) {
1316
1318
case NVPTX::Ordering::SequentiallyConsistent: {
1317
1319
unsigned Op = Subtarget->hasMemoryOrdering ()
1318
1320
? NVPTX::atomic_thread_fence_seq_cst_sys
1319
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1321
+ : NVPTX::INT_MEMBAR_SYS ;
1320
1322
Chain = SDValue (CurDAG->getMachineNode (Op, DL, MVT::Other, Chain), 0 );
1321
1323
break ;
1322
1324
}
@@ -1988,7 +1990,7 @@ bool NVPTXDAGToDAGISel::tryStore(SDNode *N) {
1988
1990
case NVPTX::Ordering::SequentiallyConsistent: {
1989
1991
unsigned Op = Subtarget->hasMemoryOrdering ()
1990
1992
? NVPTX::atomic_thread_fence_seq_cst_sys
1991
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1993
+ : NVPTX::INT_MEMBAR_SYS ;
1992
1994
Chain = SDValue (CurDAG->getMachineNode (Op, dl, MVT::Other, Chain), 0 );
1993
1995
break ;
1994
1996
}
@@ -2148,7 +2150,7 @@ bool NVPTXDAGToDAGISel::tryStoreVector(SDNode *N) {
2148
2150
case NVPTX::Ordering::SequentiallyConsistent: {
2149
2151
unsigned Op = Subtarget->hasMemoryOrdering ()
2150
2152
? NVPTX::atomic_thread_fence_seq_cst_sys
2151
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
2153
+ : NVPTX::INT_MEMBAR_SYS ;
2152
2154
Chain = SDValue (CurDAG->getMachineNode (Op, DL, MVT::Other, Chain), 0 );
2153
2155
break ;
2154
2156
}
0 commit comments