diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2016-03-19 21:28:28 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-03-19 21:28:28 +0000 |
commit | 43165d913aeb61e32877c0d3e9dafa3d926b8c4d (patch) | |
tree | c44c58a813ec4b8b888a6640e03da20ee26edda9 /llvm/tools/llvm-c-test | |
parent | c286b9f0f4aab004e46fe14f3ba1648d7d1edaf7 (diff) | |
download | bcm5719-llvm-43165d913aeb61e32877c0d3e9dafa3d926b8c4d.tar.gz bcm5719-llvm-43165d913aeb61e32877c0d3e9dafa3d926b8c4d.zip |
Expose IRBuilder::CreateAtomicCmpXchg as LLVMBuildAtomicCmpXchg in the C API.
Summary: Also expose getters and setters in the C API, so that the change can be tested.
Reviewers: nhaehnle, axw, joker.eph
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18260
From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
llvm-svn: 263886
Diffstat (limited to 'llvm/tools/llvm-c-test')
-rw-r--r-- | llvm/tools/llvm-c-test/echo.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/tools/llvm-c-test/echo.cpp b/llvm/tools/llvm-c-test/echo.cpp index a8f9baf1a39..5a2102a1579 100644 --- a/llvm/tools/llvm-c-test/echo.cpp +++ b/llvm/tools/llvm-c-test/echo.cpp @@ -522,6 +522,17 @@ struct FunCloner { Dst = LLVMBuildGEP(Builder, Ptr, Idx.data(), NumIdx, Name); break; } + case LLVMAtomicCmpXchg: { + LLVMValueRef Ptr = CloneValue(LLVMGetOperand(Src, 0)); + LLVMValueRef Cmp = CloneValue(LLVMGetOperand(Src, 1)); + LLVMValueRef New = CloneValue(LLVMGetOperand(Src, 2)); + LLVMAtomicOrdering Succ = LLVMGetCmpXchgSuccessOrdering(Src); + LLVMAtomicOrdering Fail = LLVMGetCmpXchgFailureOrdering(Src); + LLVMBool SingleThread = LLVMIsAtomicSingleThread(Src); + + Dst = LLVMBuildAtomicCmpXchg(Builder, Ptr, Cmp, New, Succ, Fail, + SingleThread); + } break; case LLVMBitCast: { LLVMValueRef V = CloneValue(LLVMGetOperand(Src, 0)); Dst = LLVMBuildBitCast(Builder, V, CloneType(Src), Name); |