diff options
author | JF Bastien <jfb@chromium.org> | 2013-08-06 16:14:36 -0700 |
---|---|---|
committer | JF Bastien <jfb@chromium.org> | 2013-08-06 16:14:36 -0700 |
commit | 77f169c9afeaf7384360ff6d56b73cc4d3200f5b (patch) | |
tree | af76df0613246defa73290adf854e349cad79c3e /include | |
parent | b6846e1a64c3a56be80f1b7bd2d5bf10cfabc36f (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.td | 2 |
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">; |