llvm-project/clang/lib/Basic
Yaxun Liu 39195062c2 Add OpenCL 2.0 atomic builtin functions as Clang builtin
OpenCL 2.0 atomic builtin functions have a scope argument which is ideally
represented as synchronization scope argument in LLVM atomic instructions.

Clang supports translating Clang atomic builtin functions to LLVM atomic
instructions. However it currently does not support synchronization scope
of LLVM atomic instructions. Without this, users have to use LLVM assembly
code to implement OpenCL atomic builtin functions.

This patch adds OpenCL 2.0 atomic builtin functions as Clang builtin
functions, which supports generating LLVM atomic instructions with
synchronization scope operand.

Currently only constant memory scope argument is supported. Support of
non-constant memory scope argument will be added later.

Differential Revision: https://reviews.llvm.org/D28691

llvm-svn: 310082
2017-08-04 18:16:31 +00:00
..
Targets Add OpenCL 2.0 atomic builtin functions as Clang builtin 2017-08-04 18:16:31 +00:00
Attributes.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
Builtins.cpp [OpenCL] Make OpenCL Builtins added according to the right version. 2016-07-04 16:07:18 +00:00
CMakeLists.txt Break up Targets.cpp into a header/impl pair per target type[NFCI] 2017-07-21 22:37:03 +00:00
CharInfo.cpp
Cuda.cpp [CUDA] Fix "control reaches end of non-void function" warnings in Cuda.cpp. 2016-07-07 01:06:59 +00:00
Diagnostic.cpp DiagnosticsEngine should clear DelayedDiagID before reporting the 2017-05-04 13:56:51 +00:00
DiagnosticIDs.cpp [Bash-autocompletion] Fixed typo and add '-' after -Wno 2017-07-22 12:35:15 +00:00
DiagnosticOptions.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
FileManager.cpp Use VFS operations in FileManager::makeAbsolutePath. 2017-08-02 07:25:24 +00:00
FileSystemStatCache.cpp [VFS] Replace TimeValue usage with std::chrono 2016-11-09 10:52:22 +00:00
IdentifierTable.cpp Added missing break. 2017-06-03 06:40:10 +00:00
LangOptions.cpp [Modules] Handle sanitizer feature mismatches when importing modules 2017-06-01 20:01:01 +00:00
MemoryBufferCache.cpp Reapply "Modules: Cache PCMs in memory and avoid a use-after-free" 2017-03-20 17:58:26 +00:00
Module.cpp Support non-identifier module names when preprocessing modules. 2017-06-19 23:09:36 +00:00
ObjCRuntime.cpp Watch and TV OS: wire up basic ABI choices 2015-10-30 16:30:36 +00:00
OpenMPKinds.cpp [OPENMP] Initial support for 'in_reduction' clause. 2017-07-21 18:48:21 +00:00
OperatorPrecedence.cpp [OpenCL] Adding reserved operator logical xor for OpenCL 2016-02-03 15:17:14 +00:00
SanitizerBlacklist.cpp Replace double-negated !SourceLocation.isInvalid() with SourceLocation.isValid(). 2015-10-03 05:15:57 +00:00
Sanitizers.cpp Pull trivial SanitizerSet methods into the header. 2015-07-14 15:34:19 +00:00
SourceLocation.cpp Revert "Revert "[NFC] Refactor DiagnosticRenderer to use FullSourceLoc"" 2017-06-27 09:50:38 +00:00
SourceManager.cpp Factor out a functionality from isBeforeInTranslationUnit 2017-06-29 06:53:13 +00:00
TargetInfo.cpp [inline asm][gcc-compatiblity] "=i" output constraint support 2017-06-26 15:55:51 +00:00
Targets.cpp [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC) 2017-07-31 18:17:38 +00:00
Targets.h [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC) 2017-07-31 18:17:38 +00:00
TokenKinds.cpp
Version.cpp
VersionTuple.cpp MS ABI: Implement driver-level support for thread-safe statics 2015-03-22 08:39:22 +00:00
VirtualFileSystem.cpp [vfs] Assert that the status is known in equivalent(). 2017-07-20 11:57:02 +00:00
Warnings.cpp
XRayLists.cpp [XRay][clang] Allow imbuing arg1 logging attribute via -fxray-always-instrument= 2017-05-24 05:46:36 +00:00