aboutsummaryrefslogtreecommitdiff
path: root/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h')
-rw-r--r--llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
index fd72a38..9855444 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
@@ -115,14 +115,17 @@ struct LegalityQuery {
struct MemDesc {
LLT MemoryTy;
uint64_t AlignInBits;
- AtomicOrdering Ordering;
+ AtomicOrdering Ordering; //< For cmpxchg this is the success ordering.
+ AtomicOrdering FailureOrdering; //< For cmpxchg, otherwise NotAtomic.
MemDesc() = default;
- MemDesc(LLT MemoryTy, uint64_t AlignInBits, AtomicOrdering Ordering)
- : MemoryTy(MemoryTy), AlignInBits(AlignInBits), Ordering(Ordering) {}
+ MemDesc(LLT MemoryTy, uint64_t AlignInBits, AtomicOrdering Ordering,
+ AtomicOrdering FailureOrdering)
+ : MemoryTy(MemoryTy), AlignInBits(AlignInBits), Ordering(Ordering),
+ FailureOrdering(FailureOrdering) {}
MemDesc(const MachineMemOperand &MMO)
: MemDesc(MMO.getMemoryType(), MMO.getAlign().value() * 8,
- MMO.getSuccessOrdering()) {}
+ MMO.getSuccessOrdering(), MMO.getFailureOrdering()) {}
};
/// Operations which require memory can use this to place requirements on the