]> git.ipfire.org Git - thirdparty/gcc.git/commit
backport: re PR fortran/69128 (OpenMP workshare problem with SUM())
authorJakub Jelinek <jakub@redhat.com>
Thu, 11 Feb 2016 09:14:43 +0000 (10:14 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 11 Feb 2016 09:14:43 +0000 (10:14 +0100)
commitcbe42e1c29e03e5652fdf43810077828bcacc482
treebcd65ada9e3d0978a939b0f6020a5adea295782a
parent396fe387565d7da650d8ee84a378d938a3d6ae9e
backport: re PR fortran/69128 (OpenMP workshare problem with SUM())

Backported from mainline
2016-01-08  Jakub Jelinek  <jakub@redhat.com>

PR fortran/69128
* trans.h (OMPWS_SCALARIZER_BODY): Define.
(OMPWS_NOWAIT): Renumber.
* trans-stmt.c (gfc_trans_where_3): Only set OMPWS_SCALARIZER_WS
if OMPWS_SCALARIZER_BODY is not set already, and set also
OMPWS_SCALARIZER_BODY until the final loop creation.
* trans-expr.c (gfc_trans_assignment_1): Likewise.
* trans-openmp.c (gfc_trans_omp_workshare): Also clear
OMPWS_SCALARIZER_BODY.
* trans-array.c (gfc_trans_scalarized_loop_end): Don't create
OMP_FOR if OMPWS_SCALARIZER_BODY is set.

* gfortran.dg/gomp/pr69128.f90: New test.

From-SVN: r233328
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-openmp.c
gcc/fortran/trans-stmt.c
gcc/fortran/trans.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gomp/pr69128.f90 [new file with mode: 0644]