summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDeclCXX.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2015-05-22 08:56:35 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2015-05-22 08:56:35 +0000
commit3ae88e2124b8f832b88d81700a545f06eab6e42c (patch)
treed32720497d902d116c975bda3b9f24b575b3feb3 /clang/lib/CodeGen/CGDeclCXX.cpp
parentb84141a6fe584381e97adb2ed1fe9a2b6fd90fc7 (diff)
downloadbcm5719-llvm-3ae88e2124b8f832b88d81700a545f06eab6e42c.tar.gz
bcm5719-llvm-3ae88e2124b8f832b88d81700a545f06eab6e42c.zip
[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
Diffstat (limited to 'clang/lib/CodeGen/CGDeclCXX.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud