diff options
| author | Peter Marheine <peter@taricorp.net> | 2015-02-14 23:48:10 -0700 |
|---|---|---|
| committer | Peter Marheine <peter@taricorp.net> | 2015-04-25 19:41:21 -0600 |
| commit | 998c10d6b64f9a37d4cab33e09b9dfd551c76b92 (patch) | |
| tree | d3272508b6aa37ce49b633ede17dc8ce29b6fea4 /src/rustllvm/RustWrapper.cpp | |
| parent | 0d8309ec0b13ebad02bbc76f93eff39edf4af2d0 (diff) | |
| download | rust-998c10d6b64f9a37d4cab33e09b9dfd551c76b92.tar.gz rust-998c10d6b64f9a37d4cab33e09b9dfd551c76b92.zip | |
Add singlethreaded fence intrinsics.
These new intrinsics are comparable to `atomic_signal_fence` in C++, ensuring the compiler will not reorder memory accesses across the barrier, nor will it emit any machine instructions for it. Closes #24118, implementing RFC 888.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index fe0a7b454c1..375c5fc746c 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -189,8 +189,10 @@ extern "C" LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B, failure_order )); } -extern "C" LLVMValueRef LLVMBuildAtomicFence(LLVMBuilderRef B, AtomicOrdering order) { - return wrap(unwrap(B)->CreateFence(order)); +extern "C" LLVMValueRef LLVMBuildAtomicFence(LLVMBuilderRef B, + AtomicOrdering order, + SynchronizationScope scope) { + return wrap(unwrap(B)->CreateFence(order, scope)); } extern "C" void LLVMSetDebug(int Enabled) { |
