Commit c34f4fbc by Thomas Schwinge Committed by Thomas Schwinge

Support multiple OpenACC wait clauses

Support for this is not explicitly called for in OpenACC 2.6, but given that
GCC internally decomposes "wait (1, 2)" into "wait (1) wait (2)" (similar for
other clauses, too), it's reasonable to also support that syntax in the front
ends -- which happens to already be the case for C, C++, and easy enough to do
for Fortran.

	gcc/fortran/
	* openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
	clauses.
	gcc/testsuite/
	* c-c++-common/goacc/asyncwait-5.c: New file.
	* gfortran.dg/goacc/asyncwait-5.f: Likewise.

From-SVN: r266684
parent c223608f
2018-11-30 Thomas Schwinge <thomas@codesourcery.com>
* openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
clauses.
2018-11-27 Martin Liska <mliska@suse.cz>
* decl.c (gfc_match_gcc_builtin): New function.
......
......@@ -1876,7 +1876,6 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask,
break;
case 'w':
if ((mask & OMP_CLAUSE_WAIT)
&& !c->wait
&& gfc_match ("wait") == MATCH_YES)
{
c->wait = true;
......
2018-11-30 Thomas Schwinge <thomas@codesourcery.com>
* c-c++-common/goacc/asyncwait-5.c: New file.
* gfortran.dg/goacc/asyncwait-5.f: Likewise.
2018-11-30 Peter Bergner <bergner@linux.ibm.com>
PR target/87496
......
/* Multiple OpenACC wait clauses. */
/* { dg-additional-options "-fdump-tree-original" } */
void f()
{
#pragma acc parallel async (1) wait (14)
;
/* { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel wait\\(14\\) async\\(1\\)$" 1 "original" } } */
#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" } } */
}
! Multiple OpenACC wait clauses.
! { dg-additional-options "-fdump-tree-original" }
!$ACC PARALLEL ASYNC (1) WAIT (14)
!$ACC END PARALLEL
! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(1\\) wait\\(14\\)$" 1 "original" } }
!$ACC PARALLEL ASYNC (2) WAIT (11, 12) WAIT(13)
!$ACC END PARALLEL
! { dg-final { scan-tree-dump-times "(?n)#pragma acc parallel async\\(2\\) wait\\(11\\) wait\\(12\\) wait\\(13\\)$" 1 "original" } }
END
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment