about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorPeter Marheine <peter@taricorp.net>2015-02-14 23:48:10 -0700
committerPeter Marheine <peter@taricorp.net>2015-04-25 19:41:21 -0600
commit998c10d6b64f9a37d4cab33e09b9dfd551c76b92 (patch)
treed3272508b6aa37ce49b633ede17dc8ce29b6fea4 /src/rustllvm/RustWrapper.cpp
parent0d8309ec0b13ebad02bbc76f93eff39edf4af2d0 (diff)
downloadrust-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.cpp6
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) {