llvm-project/clang/lib/Serialization
Alexey Bataev b4505a7229 [OPENMP] Codegen for 'atomic update' construct.
Adds atomic update codegen for the following forms of expressions:

x binop= expr;
x++;
++x;
x--;
--x;
x = x binop expr;
x = expr binop x;
If x and expr are integer and binop is associative or x is a LHS in a RHS of the assignment expression, and atomics are allowed for type of x on the target platform atomicrmw instruction is emitted.
Otherwise compare-and-swap sequence is emitted:

bb:
...
atomic load <x>
cont:
<expected> = phi [ <x>, label %bb ], [ <new_failed>, %cont ]
<desired> = <expected> binop <expr>
<res> = cmpxchg atomic &<x>, desired, expected
<new_failed> = <res>.field1;
br <res>field2, label %exit, label %cont
exit:
...

Differential Revision: http://reviews.llvm.org/D8536

llvm-svn: 233513
2015-03-30 05:20:59 +00:00
..
ASTCommon.cpp Replace Sema's map of locally-scoped extern "C" declarations with a DeclContext 2015-03-07 00:04:49 +00:00
ASTCommon.h [modules] If we reach a definition of a class for which we already have a 2015-03-26 04:09:53 +00:00
ASTReader.cpp [modules] When merging class definitions, make the retained definition visible 2015-03-27 21:16:39 +00:00
ASTReaderDecl.cpp [modules] When merging class definitions, make the retained definition visible 2015-03-27 21:16:39 +00:00
ASTReaderInternals.h Objective-C: Serialize "more than one decl" state of ObjCMethodList. 2014-12-27 22:14:15 +00:00
ASTReaderStmt.cpp [OPENMP] Codegen for 'atomic update' construct. 2015-03-30 05:20:59 +00:00
ASTWriter.cpp [Modules] Make Sema's map of referenced selectors have a deterministic 2015-03-27 00:55:05 +00:00
ASTWriterDecl.cpp [Modules] Work around PR23030 again, in a different code path, where 2015-03-27 21:40:58 +00:00
ASTWriterStmt.cpp [OPENMP] Codegen for 'atomic update' construct. 2015-03-30 05:20:59 +00:00
CMakeLists.txt Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
GeneratePCH.cpp Revert "Wrap clang module files in a Mach-O, ELF, or COFF container." 2015-02-25 02:44:04 +00:00
GlobalModuleIndex.cpp Remove many superfluous SmallString::str() calls. 2015-03-18 10:17:07 +00:00
Makefile
Module.cpp [modules] Deserialize CXXCtorInitializer list for a constructor lazily. 2015-03-24 06:36:48 +00:00
ModuleManager.cpp A couple of readASTFileSignature improvements (NFC) 2015-03-24 04:43:52 +00:00