[OPENMP] Supported reduction clause in omp simd construct.
authorAlexey Bataev <a.bataev@hotmail.com>
Wed, 17 Jun 2015 06:21:39 +0000 (06:21 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Wed, 17 Jun 2015 06:21:39 +0000 (06:21 +0000)
commit89e7e8eb0e18316647ccf1953154ffa29f97f545
treebbeab00b38fc00db40c15d4d31426f89893c49aa
parent8321006d44c351e4cd4d1383de7e9d11764da56e
[OPENMP] Supported reduction clause in omp simd construct.

The following code is generated for reduction clause within 'omp simd' loop construct:
#pragma omp simd reduction(op:var)
for (...)
  <body>

alloca priv_var
priv_var = <initial reduction value>;
<loop_start>:
<body> // references to original 'var' are replaced by 'priv_var'
<loop_end>:
var op= priv_var;

llvm-svn: 239881
clang/lib/CodeGen/CGOpenMPRuntime.cpp
clang/lib/CodeGen/CGOpenMPRuntime.h
clang/lib/CodeGen/CGStmtOpenMP.cpp
clang/test/OpenMP/simd_codegen.cpp