diff options
author | Mon P Wang <wangmp@apple.com> | 2008-10-18 02:49:28 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2008-10-18 02:49:28 +0000 |
commit | 7ae48ee2fb80b0a3ac6ad912b465a077c7591a19 (patch) | |
tree | a7aafeb26c0c37e39ea3a7a6da9bda46218474bd | |
parent | e5582f08df3ede19d8bb182844aad60ab65ab237 (diff) |
Make llvm memory barrier available as an intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57751 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/Builtins.def | 4 | ||||
-rw-r--r-- | lib/AST/Builtins.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/clang/AST/Builtins.def b/include/clang/AST/Builtins.def index d23cc14eb9..a2d54df18d 100644 --- a/include/clang/AST/Builtins.def +++ b/include/clang/AST/Builtins.def @@ -24,6 +24,7 @@ // The second value provided to the macro specifies the type of the function // (result value, then each argument) as follows: // v -> void +// b -> boolean // c -> char // s -> short // i -> int @@ -165,4 +166,7 @@ BUILTIN(__sync_fetch_and_xor,"ii*i", "n") BUILTIN(__sync_lock_test_and_set,"ii*i", "n") BUILTIN(__sync_val_compare_and_swap,"ii*ii", "n") +// LLVM instruction builtin +BUILTIN(__builtin_llvm_memory_barrier,"vbbbbb", "n") + #undef BUILTIN diff --git a/lib/AST/Builtins.cpp b/lib/AST/Builtins.cpp index 3980d20521..1823ee6055 100644 --- a/lib/AST/Builtins.cpp +++ b/lib/AST/Builtins.cpp @@ -127,6 +127,10 @@ static QualType DecodeTypeFromStr(const char *&Str, ASTContext &Context, else Type = Context.CharTy; break; + case 'b': // boolean + assert(!Long && !Signed && !Unsigned && "Bad modifiers for 'b'!"); + Type = Context.BoolTy; + break; case 'z': // size_t. assert(!Long && !Signed && !Unsigned && "Bad modifiers for 'z'!"); Type = Context.getSizeType(); |