aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineMemOperand.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:47:01 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:47:01 +0800
commitf5ebe810b5197dbb268db890c5bfec016f447101 (patch)
tree9a88ddf801678926e671bdebe779ddba4f6e6778 /backend/lib/CodeGen/MachineMemOperand.cpp
parent4fe5ee649927d54d6fb74904d7b97ad0f63fd587 (diff)
downloadrcc-project-f5ebe810b5197dbb268db890c5bfec016f447101.tar.gz
rcc-project-f5ebe810b5197dbb268db890c5bfec016f447101.tar.xz
[MIR] Parse one-ordering compare-exchange MMOs
Diffstat (limited to 'backend/lib/CodeGen/MachineMemOperand.cpp')
-rw-r--r--backend/lib/CodeGen/MachineMemOperand.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/backend/lib/CodeGen/MachineMemOperand.cpp b/backend/lib/CodeGen/MachineMemOperand.cpp
index 5f126fd..cb90e61 100644
--- a/backend/lib/CodeGen/MachineMemOperand.cpp
+++ b/backend/lib/CodeGen/MachineMemOperand.cpp
@@ -37,13 +37,15 @@ namespace {
}
[[nodiscard]] bool isValidCompareExchangeFailureOrdering(AtomicOrdering Ordering) noexcept {
- return Ordering == AtomicOrdering::Monotonic || Ordering == AtomicOrdering::Acquire ||
- Ordering == AtomicOrdering::SequentiallyConsistent;
+ return Ordering == AtomicOrdering::NotAtomic || Ordering == AtomicOrdering::Monotonic ||
+ Ordering == AtomicOrdering::Acquire || Ordering == AtomicOrdering::SequentiallyConsistent;
}
[[nodiscard]] bool isFailureOrderingNoStrongerThanSuccess(AtomicOrdering Failure,
AtomicOrdering Success) noexcept {
switch (Failure) {
+ case AtomicOrdering::NotAtomic:
+ return true;
case AtomicOrdering::Monotonic:
return isValidAtomicReadModifyWriteOrdering(Success);
case AtomicOrdering::Acquire:
@@ -51,7 +53,6 @@ namespace {
Success == AtomicOrdering::SequentiallyConsistent;
case AtomicOrdering::SequentiallyConsistent:
return Success == AtomicOrdering::SequentiallyConsistent;
- case AtomicOrdering::NotAtomic:
case AtomicOrdering::Unordered:
case AtomicOrdering::Release:
case AtomicOrdering::AcquireRelease: