diff options
author | Robin Morisset <morisset@google.com> | 2014-09-17 00:06:58 +0000 |
---|---|---|
committer | Robin Morisset <morisset@google.com> | 2014-09-17 00:06:58 +0000 |
commit | 25c8e318e43682042d0b41a44877afe69753dfc9 (patch) | |
tree | caee971ed4df820846f3ddea4a0fd9624e01c4ca /llvm/lib/Target/ARM/ARMISelLowering.h | |
parent | 6389a7da088e58694cccaf29f9c361028a0f4dd8 (diff) | |
download | bcm5719-llvm-25c8e318e43682042d0b41a44877afe69753dfc9.tar.gz bcm5719-llvm-25c8e318e43682042d0b41a44877afe69753dfc9.zip |
[X86] Use the generic AtomicExpandPass instead of X86AtomicExpandPass
This required a new hook called hasLoadLinkedStoreConditional to know whether
to expand atomics to LL/SC (ARM, AArch64, in a future patch Power) or to
CmpXchg (X86).
Apart from that, the new code in AtomicExpandPass is mostly moved from
X86AtomicExpandPass. The main result of this patch is to get rid of that
pass, which had lots of code duplicated with AtomicExpandPass.
llvm-svn: 217928
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.h')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.h b/llvm/lib/Target/ARM/ARMISelLowering.h index 38ba39bbe5a..aa268f16498 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.h +++ b/llvm/lib/Target/ARM/ARMISelLowering.h @@ -392,6 +392,7 @@ namespace llvm { bool functionArgumentNeedsConsecutiveRegisters( Type *Ty, CallingConv::ID CallConv, bool isVarArg) const override; + bool hasLoadLinkedStoreConditional() const override; Value *emitLoadLinked(IRBuilder<> &Builder, Value *Addr, AtomicOrdering Ord) const override; Value *emitStoreConditional(IRBuilder<> &Builder, Value *Val, |