Hi Tobias! On 2022-09-29T14:45:03+0000, Tobias Burnus via Gcc-cvs <gcc-...@gcc.gnu.org> wrote: > https://gcc.gnu.org/g:c455181c13a7b00ee09777287bcf0c8b9de9d1fe > > commit c455181c13a7b00ee09777287bcf0c8b9de9d1fe > Merge: d21bfef9867 85adc2ec2b0 > Author: Tobias Burnus <tob...@codesourcery.com> > Date: Thu Sep 29 16:37:52 2022 +0200 > > Merge branch 'releases/gcc-12' into devel/omp/gcc-12 > > Merged up to r12-8794-g85adc2ec2b0736d07c0df35ad9a450f97ff59a7c (29th > Sept 2022) > > This includes r12-8793-gafea1ae84f0 (cherry-picked from > r13-2868-gd3df98807b5) > "OpenACC: Fix reduction tree-sharing issue [PR106982]". However, due to > omp-low.cc changes, it neither applies cleanly nor it required to make the > testcases pass. This merge adds the testcases - but due to conflicts > under a > different filename: gcc/testsuite/c-c++-common/goacc/reduction-7.c added > as > ...-9.c and ...-8.c added as ...-10.c.
Hmm, it seems that something needs to be done in og12 'gcc/omp-low.cc', too -- I do confirm: +PASS: c-c++-common/goacc/reduction-9.c (test for excess errors) ..., but: +FAIL: c-c++-common/goacc/reduction-10.c (internal compiler error: verify_gimple failed) +FAIL: c-c++-common/goacc/reduction-10.c (test for excess errors) [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c: In function 'test1': [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c:10:9: error: incorrect sharing of tree nodes MEM <double[5]> [(double *)&reduced] MEM <double[5]> [(double *)&reduced] = .GOACC_REDUCTION (INIT, 0, MEM <double[5]> [(double *)&reduced], -1, 73, 0); [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c:10:9: error: incorrect sharing of tree nodes MEM <double[5]> [(double *)&reduced] #pragma acc loop reduction(*:MEM <double[5]> [(double *)&reduced]) worker private(y) for (y = 0; y < 5; y = y + 1) [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c:10:9: error: incorrect sharing of tree nodes MEM <double[5]> [(double *)&reduced] MEM <double[5]> [(double *)&reduced] = .GOACC_REDUCTION (FINI, 0, MEM <double[5]> [(double *)&reduced], -1, 73, 0); [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c:10:9: error: incorrect sharing of tree nodes MEM <double[5]> [(double *)&reduced] MEM <double[5]> [(double *)&reduced] = .GOACC_REDUCTION (TEARDOWN, 0, MEM <double[5]> [(double *)&reduced], -1, 73, 0); during GIMPLE pass: cfg [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/reduction-10.c:10:9: internal compiler error: verify_gimple failed (Same for C++ testing.) Grüße Thomas > Diff: > > gcc/ChangeLog | 24 +++++++++++++ > gcc/DATESTAMP | 2 +- > gcc/config/aarch64/aarch64-cores.def | 3 +- > gcc/config/aarch64/aarch64-tune.md | 2 +- > gcc/config/aarch64/aarch64.cc | 40 > +++++++++++----------- > gcc/doc/invoke.texi | 2 +- > gcc/omp-low.cc | 3 +- > gcc/testsuite/c-c++-common/goacc/reduction-10.c | 12 +++++++ > gcc/testsuite/c-c++-common/goacc/reduction-9.c | 22 ++++++++++++ > libstdc++-v3/doc/html/index.html | 2 +- > libstdc++-v3/doc/html/manual/api.html | 5 +++ > libstdc++-v3/doc/html/manual/appendix.html | 2 +- > libstdc++-v3/doc/html/manual/appendix_porting.html | 2 +- > libstdc++-v3/doc/html/manual/bugs.html | 6 ++++ > libstdc++-v3/doc/html/manual/index.html | 2 +- > libstdc++-v3/doc/html/manual/using_macros.html | 5 +-- > libstdc++-v3/doc/xml/manual/evolution.xml | 13 +++++++ > libstdc++-v3/doc/xml/manual/intro.xml | 9 +++++ > libstdc++-v3/doc/xml/manual/using.xml | 5 +-- > libstdc++-v3/include/std/functional | 32 ++++++++++++----- > libstdc++-v3/testsuite/20_util/bind/cv_quals.cc | 25 +++++++------- > libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc | 12 ++++--- > 22 files changed, 172 insertions(+), 58 deletions(-) > > diff --cc gcc/testsuite/c-c++-common/goacc/reduction-10.c > index 00000000000,00000000000..2c3ed499d5b > new file mode 100644 > --- /dev/null > +++ b/gcc/testsuite/c-c++-common/goacc/reduction-10.c > @@@ -1,0 -1,0 +1,12 @@@ > ++/* { dg-do compile } */ > ++ > ++/* PR middle-end/106982 */ > ++ > ++void test1(double *c) > ++{ > ++ double reduced[5]; > ++#pragma acc parallel loop gang private(reduced) > ++ for (int x = 0; x < 5; ++x) > ++#pragma acc loop worker reduction(*:reduced) > ++ for (int y = 0; y < 5; ++y) { } > ++} > diff --cc gcc/testsuite/c-c++-common/goacc/reduction-9.c > index 00000000000,00000000000..482b0ab1984 > new file mode 100644 > --- /dev/null > +++ b/gcc/testsuite/c-c++-common/goacc/reduction-9.c > @@@ -1,0 -1,0 +1,22 @@@ > ++/* { dg-do compile } */ > ++ > ++/* PR middle-end/106982 */ > ++ > ++long long n = 100; > ++int multiplicitive_n = 128; > ++ > ++void test1(double *rand, double *a, double *b, double *c) > ++{ > ++#pragma acc data copyin(a[0:10*multiplicitive_n], b[0:10*multiplicitive_n]) > copyout(c[0:10]) > ++ { > ++#pragma acc parallel loop > ++ for (int i = 0; i < 10; ++i) > ++ { > ++ double temp = 1.0; > ++#pragma acc loop vector reduction(*:temp) > ++ for (int j = 0; j < multiplicitive_n; ++j) > ++ temp *= a[(i * multiplicitive_n) + j] + b[(i * multiplicitive_n) > + j]; > ++ c[i] = temp; > ++ } > ++ } > ++} ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955