From: Thomas Schwinge <thomas@codesourcery.com>
To: Tobias Burnus <tobias@codesourcery.com>
Cc: <gcc-patches@gcc.gnu.org>
Subject: [og12] OpenACC: Fix reduction tree-sharing issue [PR106982] (was: [gcc/devel/omp/gcc-12] Merge branch 'releases/gcc-12' into devel/omp/gcc-12)
Date: Wed, 2 Nov 2022 12:25:24 +0100 [thread overview]
Message-ID: <871qqlmwd7.fsf@euler.schwinge.homeip.net> (raw)
In-Reply-To: <20220929144503.459CB385782F@sourceware.org>
Hi Tobias!
On 2022-09-29T14:45:03+0000, Tobias Burnus via Gcc-cvs <gcc-cvs@gcc.gnu.org> wrote:
> https://gcc.gnu.org/g:c455181c13a7b00ee09777287bcf0c8b9de9d1fe
>
> commit c455181c13a7b00ee09777287bcf0c8b9de9d1fe
> Merge: d21bfef9867 85adc2ec2b0
> Author: Tobias Burnus <tobias@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
parent reply other threads:[~2022-11-02 11:25 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <20220929144503.459CB385782F@sourceware.org>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871qqlmwd7.fsf@euler.schwinge.homeip.net \
--to=thomas@codesourcery.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=tobias@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).