llvm-project/clang/lib/AST
Alexey Bataev 4a5bb772c3 [OPENMP] Codegen for 'firstprivate' clause.
This patch generates some helper variables that used as private copies of the corresponding original variables inside an OpenMP 'parallel' directive. These generated variables are initialized by copy using values of the original variables (with the copy constructor, if any). For arrays, initializator is generated for single element and in the codegen procedure this initial value is automatically propagated between all elements of the private copy.
In outlined function, references to original variables are replaced by the references to these private helper variables. At the end of the initialization of the private variables an implicit barier is generated by calling __kmpc_barrier(...) runtime function to be sure that all threads were initialized using original values of the variables.
Differential Revision: http://reviews.llvm.org/D5140

llvm-svn: 219306
2014-10-08 14:01:46 +00:00
..
APValue.cpp Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 06:28:36 +00:00
ASTConsumer.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
ASTContext.cpp Return a reference instead of vector copy for parentmap queries. 2014-10-04 17:01:26 +00:00
ASTDiagnostic.cpp Refactor one of the larger functions for Type Diffing into smaller functions. 2014-08-27 06:24:47 +00:00
ASTDumper.cpp Don't print 'NULL TYPE' when dumping a delegating constructor. 2014-09-12 21:20:53 +00:00
ASTImporter.cpp -ms-extensions: Implement __super scope specifier (PR13236). 2014-09-26 00:28:20 +00:00
ASTTypeTraits.cpp Fix bug in DynTypedMatcher::constructVariadic() that would cause false negatives. 2014-10-06 13:14:30 +00:00
AttrImpl.cpp Refactor the Microsoft inheritance attribute handling so that it no longer has special treatment. Also fixes a minor bug where the attributes were being parsed as though they were GNU-style attributes when they were in fact keyword attributes. 2013-12-18 23:44:18 +00:00
CMakeLists.txt MS ABI: Don't use the Itanium scheme for numbering lambdas 2014-08-22 04:22:50 +00:00
CXXABI.h Header guard canonicalization, clang part. 2014-08-13 16:25:19 +00:00
CXXInheritance.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
Comment.cpp Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>. 2014-08-30 16:55:39 +00:00
CommentBriefParser.cpp Some refactoring in my patch on document 2013-03-02 02:39:57 +00:00
CommentCommandTraits.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
CommentLexer.cpp Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:55:52 +00:00
CommentParser.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
CommentSema.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
Decl.cpp ms-inline-asm: Scope inline asm labels to functions 2014-09-22 02:21:54 +00:00
DeclBase.cpp Patch to wrap up '_' as separator in version numbers 2014-10-06 16:46:02 +00:00
DeclCXX.cpp Fix an assertion failure trying to emit a trivial destructor in ObjC++ 2014-09-26 15:27:29 +00:00
DeclFriend.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
DeclGroup.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +00:00
DeclObjC.cpp Objective-C. Change to method lookup rules to look 2014-08-27 20:34:29 +00:00
DeclOpenMP.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
DeclPrinter.cpp Objective-C. Assortment of improvements pretty printing 2014-10-03 20:05:33 +00:00
DeclTemplate.cpp Convert some function arguments to use ArrayRef. 2014-06-26 04:58:53 +00:00
DeclarationName.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
Expr.cpp Fix handling of preincrement on bit-fields. This gives a bit-field in C++, but 2014-09-24 23:55:00 +00:00
ExprCXX.cpp -ms-extensions: Implement __super scope specifier (PR13236). 2014-09-26 00:28:20 +00:00
ExprClassification.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
ExprConstant.cpp constexpr evaluation for __builtin_assume_aligned 2014-10-03 17:18:37 +00:00
ExternalASTSource.cpp Move virtual methods out of line. 2014-05-21 14:19:22 +00:00
InheritViz.cpp Refer to error_code with the std prefix. 2014-06-12 20:37:59 +00:00
ItaniumCXXABI.cpp Adds 'override' to overriding methods. NFC. 2014-10-01 16:56:40 +00:00
ItaniumMangle.cpp -ms-extensions: Implement __super scope specifier (PR13236). 2014-09-26 00:28:20 +00:00
Makefile
Mangle.cpp [C++11] Replacing FunctionProtoType iterators param_type_begin() and param_type_end() with iterator_range param_types(). Updating all of the usages of the iterators with range-based for loops. 2014-03-17 15:23:01 +00:00
MicrosoftCXXABI.cpp Adds 'override' to overriding methods. NFC. 2014-10-01 16:56:40 +00:00
MicrosoftMangle.cpp MS ABI: Make comment more accurate 2014-10-05 06:44:55 +00:00
NSAPI.cpp Objective-C SDK modernizer. Patch to support modernization 2014-10-06 23:50:37 +00:00
NestedNameSpecifier.cpp -ms-extensions: Implement __super scope specifier (PR13236). 2014-09-26 00:28:20 +00:00
ParentMap.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
RawCommentList.cpp Comment parsing: when comment ranges are deserialized from multiple modules, 2014-03-27 15:40:39 +00:00
RecordLayout.cpp CXXInfo memory should be released after calling the destructor 2014-05-24 07:19:25 +00:00
RecordLayoutBuilder.cpp AST: Fix a typo (NFC) 2014-10-08 05:45:39 +00:00
SelectorLocationsKind.cpp
Stmt.cpp [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 14:01:46 +00:00
StmtIterator.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
StmtPrinter.cpp Revert "[OPENMP] 'omp teams' directive basic support. Includes parsing and semantic analysis for 'omp teams' directive support from OpenMP 4.0. Adds additional analysis to 'omp target' directive with 'omp teams' directive." 2014-10-08 09:06:45 +00:00
StmtProfile.cpp [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 14:01:46 +00:00
StmtViz.cpp
TemplateBase.cpp Added the pack_elements range accessor. Refactoring some for loops to use range-based for loops instead. No functional changes intended. 2014-07-15 21:32:31 +00:00
TemplateName.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
Type.cpp Revert r217995 and follow-ups: 2014-09-18 16:01:32 +00:00
TypeLoc.cpp [C++11] Use 'nullptr'. AST edition. 2014-05-12 05:36:57 +00:00
TypePrinter.cpp Cleanup comparisons to VariableArrayType::Static for non-VLAs 2014-07-19 02:13:40 +00:00
VTTBuilder.cpp [C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops. 2014-03-13 15:41:46 +00:00
VTableBuilder.cpp MS ABI: Assert that vftables should have a non-RTTI entry 2014-09-26 08:07:55 +00:00