diff options
author | Tim Northover <tnorthover@apple.com> | 2014-03-13 19:25:52 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2014-03-13 19:25:52 +0000 |
commit | 514fc61c091d985c561d5a60166a96f772461131 (patch) | |
tree | 8beb0d1dd8327453756870176d3eafe7369c58c8 /clang/lib/CodeGen | |
parent | 9c177223bc6c31a260387abb4e4975f16f15fdf9 (diff) | |
download | bcm5719-llvm-514fc61c091d985c561d5a60166a96f772461131.tar.gz bcm5719-llvm-514fc61c091d985c561d5a60166a96f772461131.zip |
CodeGen: use symbolic enumerators for memory order
It makes the code clearer and less error-prone to use our (already
known) special values for the various memory order cases.
llvm-svn: 203838
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGAtomic.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CGAtomic.cpp b/clang/lib/CodeGen/CGAtomic.cpp index 68437866e47..3e996f377a8 100644 --- a/clang/lib/CodeGen/CGAtomic.cpp +++ b/clang/lib/CodeGen/CGAtomic.cpp @@ -785,28 +785,33 @@ RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E, llvm::Value *Dest) { EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, OrderFail, Size, Align, llvm::Acquire); Builder.CreateBr(ContBB); - SI->addCase(Builder.getInt32(1), AcquireBB); - SI->addCase(Builder.getInt32(2), AcquireBB); + SI->addCase(Builder.getInt32(AtomicExpr::AO_ABI_memory_order_consume), + AcquireBB); + SI->addCase(Builder.getInt32(AtomicExpr::AO_ABI_memory_order_acquire), + AcquireBB); } if (!IsLoad) { Builder.SetInsertPoint(ReleaseBB); EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, OrderFail, Size, Align, llvm::Release); Builder.CreateBr(ContBB); - SI->addCase(Builder.getInt32(3), ReleaseBB); + SI->addCase(Builder.getInt32(AtomicExpr::AO_ABI_memory_order_release), + ReleaseBB); } if (!IsLoad && !IsStore) { Builder.SetInsertPoint(AcqRelBB); EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, OrderFail, Size, Align, llvm::AcquireRelease); Builder.CreateBr(ContBB); - SI->addCase(Builder.getInt32(4), AcqRelBB); + SI->addCase(Builder.getInt32(AtomicExpr::AO_ABI_memory_order_acq_rel), + AcqRelBB); } Builder.SetInsertPoint(SeqCstBB); EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, OrderFail, Size, Align, llvm::SequentiallyConsistent); Builder.CreateBr(ContBB); - SI->addCase(Builder.getInt32(5), SeqCstBB); + SI->addCase(Builder.getInt32(AtomicExpr::AO_ABI_memory_order_seq_cst), + SeqCstBB); // Cleanup and return Builder.SetInsertPoint(ContBB); |