diff options
author | Frederik Harwath <frederik@codesourcery.com> | 2019-11-06 10:43:52 +0000 |
---|---|---|
committer | Frederik Harwath <frederik@codesourcery.com> | 2019-11-06 10:43:52 +0000 |
commit | 2f7ca0abee0c484ed83101891d901b955628dd1b (patch) | |
tree | 3445dfb2c8e435ce0d5878394fbc00b923de7eab /libgomp/ChangeLog | |
parent | e3981a43956bc5bc18314964b66acd4caf7ff028 (diff) |
Warn about inconsistent OpenACC nested reduction clauses
OpenACC (cf. OpenACC 2.7, section 2.9.11. "reduction clause";
this was first clarified by OpenACC 2.6) requires that, if a
variable is used in reduction clauses on two nested loops, then
there must be reduction clauses for that variable on all loops
that are nested in between the two loops and all these reduction
clauses must use the same operator.
This commit introduces a check for that property which reports
warnings if it is violated.
2019-11-06 Gergö Barany <gergo@codesourcery.com>
Frederik Harwath <frederik@codesourcery.com>
Thomas Schwinge <thomas@codesourcery.com>
gcc/
* omp-low.c (struct omp_context): New fields
local_reduction_clauses, outer_reduction_clauses.
(new_omp_context): Initialize these.
(scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
(scan_omp_for): Check reduction clauses for incorrect nesting.
gcc/testsuite/
* c-c++-common/goacc/nested-reductions-warn.c: New test.
* c-c++-common/goacc/nested-reductions.c: New test.
* gfortran.dg/goacc/nested-reductions-warn.f90: New test.
* gfortran.dg/goacc/nested-reductions.f90: New test.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c:
Add expected warnings about missing reduction clauses.
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c:
Likewise.
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@277875 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp/ChangeLog')
-rw-r--r-- | libgomp/ChangeLog | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 15521b48bd8..067d247da9a 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,14 @@ +2019-11-06 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: + Add expected warnings about missing reduction clauses. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: + Likewise. + 2019-11-04 Tobias Burnus <tobias@codesourcery.com> * testsuite/libgomp.fortran/pr66199-1.f90: Remove |