Hi Chung-Lin! On Wed, 07 Nov 2018 20:13:29 +0100, Thomas Schwinge <tho...@codesourcery.com> wrote: > On Thu, 30 Aug 2018 21:27:22 +0800, Chung-Lin Tang <chunglin_t...@mentor.com> > wrote: > > Hi, this patch properly handles OpenACC 'wait' clauses without arguments, > > making it an equivalent of "wait all".
> > (current trunk basically discards and ignores such argument-less wait > > clauses) > > Bugs should be filed, for later reference. Now done: > <https://gcc.gnu.org/PR87924> "OpenACC wait clauses without > async-arguments". (I couldn't put you in CC because "clt...@gcc.gnu.org > did not match anything"?) This will, by the way, need to be fixed on all active release branches. > No test cases included. I'm working on a few, will post/commit later. I thought I had also written a libgomp execution test case, during travel/attending the SuperComputing 2018 conference, but I can't find it right now... ;-| Anyway, with XFAILs (which you then please remove as part of your patch), at least the following compile-time test cases now committed to trunk in r266686: commit 1d89613e77d7db420b13ce3ad8b98f07aaf474e8 Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Nov 30 20:39:30 2018 +0000 [PR87924] Add (XFAILed) test cases for OpenACC wait clauses without async-arguments gcc/testsuite/ PR c/87924 * c-c++-common/goacc/asyncwait-5.c: Update. * gfortran.dg/goacc/asyncwait-5.f: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266686 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/c-c++-common/goacc/asyncwait-5.c | 21 +++++++++++++++++++++ gcc/testsuite/gfortran.dg/goacc/asyncwait-5.f | 20 ++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git gcc/testsuite/ChangeLog gcc/testsuite/ChangeLog index 75ca70b4af28..68186d8ab837 100644 --- gcc/testsuite/ChangeLog +++ gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2018-11-30 Thomas Schwinge <tho...@codesourcery.com> + PR c/87924 + * c-c++-common/goacc/asyncwait-5.c: Update. + * gfortran.dg/goacc/asyncwait-5.f: Likewise. + * c-c++-common/goacc/asyncwait-5.c: New file. * gfortran.dg/goacc/asyncwait-5.f: Likewise. diff --git gcc/testsuite/c-c++-common/goacc/asyncwait-5.c gcc/testsuite/c-c++-common/goacc/asyncwait-5.c index fe6f8a0cf2da..80d4a8477b93 100644 --- gcc/testsuite/c-c++-common/goacc/asyncwait-5.c +++ gcc/testsuite/c-c++-common/goacc/asyncwait-5.c @@ -11,4 +11,25 @@ void f() #pragma acc parallel async (2) wait (11, 12) wait (13) ; /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(13\\) wait\\(12\\) wait\\(11\\) async\\(2\\)\$" 1 "original" } } */ + + +#pragma acc parallel async (3) wait + ; + /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(-1\\) async\\(3\\)$" 1 "original" { xfail *-*-* } } } */ + +#pragma acc parallel async (4) wait (100) wait + ; + /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(-1\\) wait\\(100\\) async\\(4\\)$" 1 "original" { xfail *-*-* } } } */ + +#pragma acc parallel async (5) wait wait (101) + ; + /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(101\\) wait\\(-1\\) async\\(5\\)$" 1 "original" { xfail *-*-* } } } */ + +#pragma acc parallel async (6) wait wait (102, 103) wait wait + ; + /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(-1\\) wait\\(-1\\) wait\\(103\\) wait\\(102\\) wait\\(-1\\) async\\(6\\)$" 1 "original" { xfail *-*-* } } } */ + +#pragma acc parallel async (7) wait (104) wait wait (105, 106) + ; + /* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(106\\) wait\\(105\\) wait\\(-1\\) wait\\(104\\) async\\(7\\)$" 1 "original" { xfail *-*-* } } } */ } diff --git gcc/testsuite/gfortran.dg/goacc/asyncwait-5.f gcc/testsuite/gfortran.dg/goacc/asyncwait-5.f index 59b886343af6..7ad5813b8a03 100644 --- gcc/testsuite/gfortran.dg/goacc/asyncwait-5.f +++ gcc/testsuite/gfortran.dg/goacc/asyncwait-5.f @@ -10,4 +10,24 @@ !$ACC END PARALLEL ! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(2\\) wait\\(11\\) wait\\(12\\) wait\\(13\\)$" 1 "original" } } +!$ACC PARALLEL ASYNC (3) WAIT +!$ACC END PARALLEL +! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(3\\) wait\\(-1\\)$" 1 "original" { xfail *-*-* } } } + +!$ACC PARALLEL ASYNC (4) WAIT (100) WAIT +!$ACC END PARALLEL +! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(4\\) wait\\(100\\) wait\\(-1\\)$" 1 "original" { xfail *-*-* } } } + +!$ACC PARALLEL ASYNC (5) WAIT WAIT (101) +!$ACC END PARALLEL +! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(5\\) wait\\(-1\\) wait\\(101\\)$" 1 "original" { xfail *-*-* } } } + +!$ACC PARALLEL ASYNC (6) WAIT WAIT (102, 103) WAIT WAIT +!$ACC END PARALLEL +! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(6\\) wait\\(-1\\) wait\\(102\\) wait\\(103\\) wait\\(-1\\) wait\\(-1\\)$" 1 "original" { xfail *-*-* } } } + +!$ACC PARALLEL ASYNC (7) WAIT (104) WAIT WAIT (105, 106) +!$ACC END PARALLEL +! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(7\\) wait\\(104\\) wait\\(-1\\) wait\\(105\\) wait\\(106\\)$" 1 "original" { xfail *-*-* } } } + END Grüße Thomas