hanchenye-llvm-project/clang/lib
Alexey Bataev 3ae88e2124 [OPENMP] Prepare codegen for privates in tasks for non-capturing of privates in CapturedStmt.
Reworked codegen for privates in tasks:

call @kmpc_omp_task_alloc();
...
call @kmpc_omp_task(task_proxy);

void map_privates(.privates_rec. *privs, type1 ** priv1_ref, ..., typen **privn_ref) {
  *priv1_ref = &privs->private1;
  ...
  *privn_ref = &privs->privaten;
  ret void
}

i32 task_entry(i32 ThreadId, i32 PartId, void* privs, void (void*, ...) map_privates, shareds* captures) {
  type1 **priv1;
  ...
  typen **privn;
  call map_privates(privs, priv1, ..., privn);
  <Task body with priv1, .., privn instead of the captured variables>.
  ret i32
}

i32 task_proxy(i32 ThreadId, kmp_task_t_with_privates *tt) {
  call task_entry(ThreadId, tt->task_data.PartId, &tt->privates, map_privates, tt->task_data.shareds);
}

llvm-svn: 238010
2015-05-22 08:56:35 +00:00
..
ARCMigrate Switch PPCallbacks to take the new MacroDefinition instead of MacroDirective*, in order to preserve full information on module macro expansion. 2015-05-04 03:15:40 +00:00
AST Modernize some doc comments. NFC 2015-05-22 06:48:13 +00:00
ASTMatchers Add conversionDecl matcher for node CXXConversionDecl. 2015-04-20 20:58:50 +00:00
Analysis Fix 'CFG graph' typo. NFC 2015-05-19 18:51:56 +00:00
Basic [modules] Retain the name as written for umbrella headers and directories, rather than converting to an absolute path. No observable change expected, but this allows us to correctly compute the module for an umbrella header, which later changes will require. 2015-05-16 02:28:53 +00:00
CodeGen [OPENMP] Prepare codegen for privates in tasks for non-capturing of privates in CapturedStmt. 2015-05-22 08:56:35 +00:00
Driver [ARM] Restructure cpu handling in the driver to mostly use the triple 2015-05-21 12:19:49 +00:00
Edit [edit] Don't hit an assert when trying to delete a trailing space at EOF 2015-03-29 18:07:29 +00:00
Format clang-format: [JS] Better support for fat arrows. 2015-05-21 12:23:34 +00:00
Frontend "This adds -fconcepts-ts as a cc1 option for enabling the 2015-05-22 01:11:10 +00:00
FrontendTool
Headers [X86] Add _mm256_set_m128 and its 5 variants. 2015-05-20 07:46:52 +00:00
Index Rename MacroDefinition -> MacroDefinitionRecord, Preprocessor::MacroDefinition -> MacroDefinition. 2015-05-04 02:25:31 +00:00
Lex Avoid using a C++11 library feature not present in libstdc++4.7. 2015-05-21 01:26:53 +00:00
Parse Refactored some common functionality into MaybeParseMicrosoftDeclSpecs; NFC. 2015-05-20 20:58:33 +00:00
Rewrite Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:58:30 +00:00
Sema [OPENMP] Prepare codegen for privates in tasks for non-capturing of privates in CapturedStmt. 2015-05-22 08:56:35 +00:00
Serialization Rename a helper template function to 'bytes' to avoid a C++17 STL conflict 2015-05-21 00:13:09 +00:00
StaticAnalyzer Add a missing forward def of CheckerManager. NFC. 2015-04-17 17:00:16 +00:00
Tooling Fix bug in Replacement's toString on Windows (missing flush). 2015-04-20 06:58:56 +00:00
CMakeLists.txt
Makefile