diff options
author | Tim Northover <tnorthover@apple.com> | 2017-02-13 22:14:16 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2017-02-13 22:14:16 +0000 |
commit | 48dfa1a6ed81f0d0d52b8172f823bbaab27f11ed (patch) | |
tree | 49914b290eda0f5ab3fa7b8c6b1eeae5fe8dc09a /llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp | |
parent | b73e309071e9289d4069fc059fae6a7131def805 (diff) | |
download | bcm5719-llvm-48dfa1a6ed81f0d0d52b8172f823bbaab27f11ed.tar.gz bcm5719-llvm-48dfa1a6ed81f0d0d52b8172f823bbaab27f11ed.zip |
GlobalISel: represent atomic loads & stores via the MachineMemOperand.
Also make sure the AArch64 backend doesn't try to convert them into normal
loads and stores.
llvm-svn: 294993
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp b/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp index 42b4daf2318..6bced17d09d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp +++ b/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp @@ -691,6 +691,12 @@ bool AArch64InstructionSelector::select(MachineInstr &I) const { return false; } + auto &MemOp = **I.memoperands_begin(); + if (MemOp.getOrdering() != AtomicOrdering::NotAtomic) { + DEBUG(dbgs() << "Atomic load/store not supported yet\n"); + return false; + } + #ifndef NDEBUG // Sanity-check the pointer register. const unsigned PtrReg = I.getOperand(1).getReg(); |