llvm-project/clang/lib
Alexey Bataev 3854f63aaf [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: 219297
2014-10-08 11:35:04 +00:00
..
ARCMigrate Objective-C SDK modernization. When modernizing to 2014-10-07 19:01:46 +00:00
AST [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 11:35:04 +00:00
ASTMatchers Fix bug in DynTypedMatcher::constructVariadic() that would cause false negatives. 2014-10-06 13:14:30 +00:00
Analysis Reverting r214064 and r215650 while investigating a pesky performance regression 2014-09-23 08:34:41 +00:00
Basic 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
CodeGen [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 11:35:04 +00:00
Driver Emit diagnostic for -munaligned-access on v6m 2014-10-07 15:11:32 +00:00
Edit Edit: Do not extend a removal to include trailing whitespace if we're at the end 2014-09-15 11:47:10 +00:00
Format clang-format: Fix bug with comments between non-trival parameters. 2014-10-07 14:45:34 +00:00
Frontend CFE Knob for: Add a thread-model knob for lowering atomics on baremetal & single threaded systems 2014-10-03 21:57:44 +00:00
FrontendTool Provide a BuryPointer for unique_ptrs. 2014-08-29 16:53:14 +00:00
Headers [PATCH][Power] Fix (and deprecate) vec_lvsl and vec_lvsr for little endian 2014-10-06 19:02:20 +00:00
Index Format: ArrayRefize some implicit copies away. 2014-10-03 18:52:48 +00:00
Lex Avoid a crash after loading an #undef'd macro in code completion 2014-09-30 20:00:18 +00:00
Parse 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
Rewrite Use intrusive refcounted pointers to manage RopeRefCountString lifetime. 2014-09-15 17:58:03 +00:00
Sema [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 11:35:04 +00:00
Serialization [OPENMP] Codegen for 'firstprivate' clause. 2014-10-08 11:35:04 +00:00
StaticAnalyzer 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
Tooling Driver: Use pointee_iterator rather than iterating over unique_ptrs 2014-10-03 01:04:53 +00:00
CMakeLists.txt Fix build with various feature flag combinations 2014-07-14 22:17:22 +00:00
Makefile Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00