diff options
author | Yaxun Liu <Yaxun.Liu@amd.com> | 2017-08-15 16:02:49 +0000 |
---|---|---|
committer | Yaxun Liu <Yaxun.Liu@amd.com> | 2017-08-15 16:02:49 +0000 |
commit | 30d652a447839340ccd4d1b3c49de832abf88ee2 (patch) | |
tree | 367349036f40146fde8cff6a53d13c6ba4adc331 /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | e1c30f74f7b974daed175db8a73d83ef659c1162 (diff) | |
download | llvm-30d652a447839340ccd4d1b3c49de832abf88ee2.zip llvm-30d652a447839340ccd4d1b3c49de832abf88ee2.tar.gz llvm-30d652a447839340ccd4d1b3c49de832abf88ee2.tar.bz2 |
[OpenCL] Support variable memory scope in atomic builtins
Differential Revision: https://reviews.llvm.org/D36580
llvm-svn: 310924
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
-rw-r--r-- | clang/lib/Frontend/InitPreprocessor.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 28656667..020cf85 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -579,10 +579,12 @@ static void InitializePredefinedMacros(const TargetInfo &TI, // Define macros for the OpenCL memory scope. // The values should match clang SyncScope enum. - assert(static_cast<unsigned>(SyncScope::OpenCLWorkGroup) == 1 && - static_cast<unsigned>(SyncScope::OpenCLDevice) == 2 && - static_cast<unsigned>(SyncScope::OpenCLAllSVMDevices) == 3 && - static_cast<unsigned>(SyncScope::OpenCLSubGroup) == 4); + static_assert( + static_cast<unsigned>(AtomicScopeOpenCLModel::WorkGroup) == 1 && + static_cast<unsigned>(AtomicScopeOpenCLModel::Device) == 2 && + static_cast<unsigned>(AtomicScopeOpenCLModel::AllSVMDevices) == 3 && + static_cast<unsigned>(AtomicScopeOpenCLModel::SubGroup) == 4, + "Invalid OpenCL memory scope enum definition"); Builder.defineMacro("__OPENCL_MEMORY_SCOPE_WORK_ITEM", "0"); Builder.defineMacro("__OPENCL_MEMORY_SCOPE_WORK_GROUP", "1"); Builder.defineMacro("__OPENCL_MEMORY_SCOPE_DEVICE", "2"); |