@@ -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
// |---------|----------|--------------------|------------|------------------------------|
@@ -1155,7 +1157,7 @@ bool NVPTXDAGToDAGISel::tryLoad(SDNode *N) {
1155
1157
case NVPTX::Ordering::SequentiallyConsistent: {
1156
1158
unsigned Op = Subtarget->hasMemoryOrdering ()
1157
1159
? NVPTX::atomic_thread_fence_seq_cst_sys
1158
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1160
+ : NVPTX::INT_MEMBAR_SYS ;
1159
1161
Chain = SDValue (CurDAG->getMachineNode (Op, dl, MVT::Other, Chain), 0 );
1160
1162
break ;
1161
1163
}
@@ -1318,7 +1320,7 @@ bool NVPTXDAGToDAGISel::tryLoadVector(SDNode *N) {
1318
1320
case NVPTX::Ordering::SequentiallyConsistent: {
1319
1321
unsigned Op = Subtarget->hasMemoryOrdering ()
1320
1322
? NVPTX::atomic_thread_fence_seq_cst_sys
1321
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1323
+ : NVPTX::INT_MEMBAR_SYS ;
1322
1324
Chain = SDValue (CurDAG->getMachineNode (Op, DL, MVT::Other, Chain), 0 );
1323
1325
break ;
1324
1326
}
@@ -1990,7 +1992,7 @@ bool NVPTXDAGToDAGISel::tryStore(SDNode *N) {
1990
1992
case NVPTX::Ordering::SequentiallyConsistent: {
1991
1993
unsigned Op = Subtarget->hasMemoryOrdering ()
1992
1994
? NVPTX::atomic_thread_fence_seq_cst_sys
1993
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
1995
+ : NVPTX::INT_MEMBAR_SYS ;
1994
1996
Chain = SDValue (CurDAG->getMachineNode (Op, dl, MVT::Other, Chain), 0 );
1995
1997
break ;
1996
1998
}
@@ -2150,7 +2152,7 @@ bool NVPTXDAGToDAGISel::tryStoreVector(SDNode *N) {
2150
2152
case NVPTX::Ordering::SequentiallyConsistent: {
2151
2153
unsigned Op = Subtarget->hasMemoryOrdering ()
2152
2154
? NVPTX::atomic_thread_fence_seq_cst_sys
2153
- : NVPTX::atomic_thread_fence_seq_cst_sys_membar ;
2155
+ : NVPTX::INT_MEMBAR_SYS ;
2154
2156
Chain = SDValue (CurDAG->getMachineNode (Op, DL, MVT::Other, Chain), 0 );
2155
2157
break ;
2156
2158
}
0 commit comments