summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64ISelLowering.h
diff options
context:
space:
mode:
authorRobin Morisset <morisset@google.com>2014-09-17 00:06:58 +0000
committerRobin Morisset <morisset@google.com>2014-09-17 00:06:58 +0000
commit25c8e318e43682042d0b41a44877afe69753dfc9 (patch)
treecaee971ed4df820846f3ddea4a0fd9624e01c4ca /llvm/lib/Target/AArch64/AArch64ISelLowering.h
parent6389a7da088e58694cccaf29f9c361028a0f4dd8 (diff)
downloadbcm5719-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/AArch64/AArch64ISelLowering.h')
-rw-r--r--llvm/lib/Target/AArch64/AArch64ISelLowering.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.h b/llvm/lib/Target/AArch64/AArch64ISelLowering.h
index a7d1379136e..dd9e5db468f 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.h
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.h
@@ -324,6 +324,7 @@ public:
bool shouldConvertConstantLoadToIntImm(const APInt &Imm,
Type *Ty) const override;
+ bool hasLoadLinkedStoreConditional() const override;
Value *emitLoadLinked(IRBuilder<> &Builder, Value *Addr,
AtomicOrdering Ord) const override;
Value *emitStoreConditional(IRBuilder<> &Builder, Value *Val,
OpenPOWER on IntegriCloud