[OPENMP] Codegen for 'firstprivate' clause in 'single' directive.
authorAlexey Bataev <a.bataev@hotmail.com>
Fri, 24 Apr 2015 04:21:15 +0000 (04:21 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Fri, 24 Apr 2015 04:21:15 +0000 (04:21 +0000)
commit5521d785323adaeab1dad7f3910ca29389893d37
tree87424535e1ebef152124f21e48cbdb6f21c0b2f3
parentb9ac794f577ebf68c1ad5dd27c83122de3b4b02a
[OPENMP] Codegen for 'firstprivate' clause in 'single' directive.

Emit the following code for 'single' directive with 'firtstprivate' clause:

if (@__kmpc_single()) {
  <init for firstprivates>
  @__kmpc_end_single();
}
@__kmpc_cancel_barrier(); // To avoid data race in firstprivate init
Differential Revision: http://reviews.llvm.org/D9223

llvm-svn: 235694
clang/lib/CodeGen/CGStmtOpenMP.cpp
clang/test/OpenMP/single_firstprivate_codegen.cpp [new file with mode: 0644]