Index: include/llvm/IR/NaClAtomicIntrinsics.h |
diff --git a/include/llvm/IR/NaClAtomicIntrinsics.h b/include/llvm/IR/NaClAtomicIntrinsics.h |
index 680c6440249210d2d1d043b5bd6e5df31d077dd2..5a8352a57d8a304a1b7b92226ac641f31f1ec833 100644 |
--- a/include/llvm/IR/NaClAtomicIntrinsics.h |
+++ b/include/llvm/IR/NaClAtomicIntrinsics.h |
@@ -100,6 +100,14 @@ enum MemoryOrder { |
MemoryOrderRelease, |
MemoryOrderAcquireRelease, |
MemoryOrderSequentiallyConsistent, |
+ // The following memory order is specific to PNaCl and is used to |
+ // support non-C11/C++11 legacy code which uses the __sync_synchronize |
+ // GCC-style builtin and the asm("":::"memory") compiler fence |
+ // idiom. It's equivalent to MemoryOrderSequentiallyConsistent |
+ // surrounded by compiler barriers, which means that in practice is |
+ // should prevent reordering of memory accesses to objects which may |
+ // escape. |
+ MemoryOrderSequentiallyConsistentAll, |
MemoryOrderNum // Invalid, keep last. |
}; |