aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2013-08-06 16:14:36 -0700
committerJF Bastien <jfb@chromium.org>2013-08-06 16:14:36 -0700
commit77f169c9afeaf7384360ff6d56b73cc4d3200f5b (patch)
treeaf76df0613246defa73290adf854e349cad79c3e /include
parentb6846e1a64c3a56be80f1b7bd2d5bf10cfabc36f (diff)
Rework PNaCl memory ordering
This CL reworks memory ordering as specified by PNaCl. The documentation needed some clarification, and the implementation needs a bit more work around volatile and __sync_synchronize to offer stronger guarantees than what LLVM intends to offer for legacy code. There is a companion patch with Clang changes: https://codereview.chromium.org/22294002 R=eliben@chromium.org TEST= ninja check-all BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475 Review URL: https://codereview.chromium.org/22240002
Diffstat (limited to 'include')
-rw-r--r--include/llvm/IR/Intrinsics.td2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/llvm/IR/Intrinsics.td b/include/llvm/IR/Intrinsics.td
index 15567eb2db..c82051ae7d 100644
--- a/include/llvm/IR/Intrinsics.td
+++ b/include/llvm/IR/Intrinsics.td
@@ -526,6 +526,8 @@ def int_nacl_atomic_cmpxchg : Intrinsic<[llvm_anyint_ty],
[IntrReadWriteArgMem]>;
def int_nacl_atomic_fence : Intrinsic<[], [llvm_i32_ty],
[IntrReadWriteArgMem]>;
+def int_nacl_atomic_fence_all : Intrinsic<[], [],
+ [IntrReadWriteArgMem]>;
def int_nacl_atomic_is_lock_free : Intrinsic<[llvm_i1_ty],
[llvm_i32_ty, llvm_ptr_ty], [IntrNoMem]>,
GCCBuiltin<"__nacl_atomic_is_lock_free">;