diff mbox series

[committed] Clean up Fortran OpenACC wait clause handling

Message ID 874lbythpn.fsf@euler.schwinge.homeip.net
State New
Headers show
Series [committed] Clean up Fortran OpenACC wait clause handling | expand

Commit Message

Thomas Schwinge Nov. 30, 2018, 8:48 p.m. UTC
Hi!

commit 3e3de40a5ab21d72f08071a7a40120dd05608cc1
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Nov 30 20:39:18 2018 +0000

    Clean up Fortran OpenACC wait clause handling
    
    "wait" can be deduced from "wait_list".
    
            gcc/fortran/
            * gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
            users.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266685 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/fortran/ChangeLog  | 3 +++
 gcc/fortran/gfortran.h | 2 +-
 gcc/fortran/openmp.c   | 7 ++-----
 3 files changed, 6 insertions(+), 6 deletions(-)



Grüße
 Thomas

Comments

Julian Brown Dec. 3, 2018, 4:02 p.m. UTC | #1
On Fri, 30 Nov 2018 21:48:20 +0100
Thomas Schwinge <thomas@codesourcery.com> wrote:

> Hi!
> 
> commit 3e3de40a5ab21d72f08071a7a40120dd05608cc1
> Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Fri Nov 30 20:39:18 2018 +0000
> 
>     Clean up Fortran OpenACC wait clause handling
>     
>     "wait" can be deduced from "wait_list".
>     
>             gcc/fortran/
>             * gfortran.h (struct gfc_omp_clauses): Remove "wait".
> Adjust all users.

This appears to conflict with Chung-Lin's uncommitted patch ("Properly
handle wait clause with no arguments"):

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01973.html

I'm not sure if such waits have a "wait_list" or not -- I guess not
though? If so this patch might need to be reverted.

Thanks,

Julian
Thomas Schwinge Dec. 13, 2018, 4:03 p.m. UTC | #2
Hi Julian!

On Mon, 3 Dec 2018 16:02:23 +0000, Julian Brown <julian@codesourcery.com> wrote:
> On Fri, 30 Nov 2018 21:48:20 +0100
> Thomas Schwinge <thomas@codesourcery.com> wrote:
> > commit 3e3de40a5ab21d72f08071a7a40120dd05608cc1
> > Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
> > Date:   Fri Nov 30 20:39:18 2018 +0000
> > 
> >     Clean up Fortran OpenACC wait clause handling
> >     
> >     "wait" can be deduced from "wait_list".
> >     
> >             gcc/fortran/
> >             * gfortran.h (struct gfc_omp_clauses): Remove "wait".
> > Adjust all users.
> 
> This appears to conflict with Chung-Lin's uncommitted patch ("Properly
> handle wait clause with no arguments"):
> 
> https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01973.html
> 
> I'm not sure if such waits have a "wait_list" or not -- I guess not
> though?

Right; that's what I provided an incremental patch for in my review in
<https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00481.html>, and asked
Chung-Lin (and he agreed) to incorporate.


Grüße
 Thomas
diff mbox series

Patch

diff --git gcc/fortran/ChangeLog gcc/fortran/ChangeLog
index 435ecf82f970..76bb0b9f5c0c 100644
--- gcc/fortran/ChangeLog
+++ gcc/fortran/ChangeLog
@@ -1,5 +1,8 @@ 
 2018-11-30  Thomas Schwinge  <thomas@codesourcery.com>
 
+	* gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
+	users.
+
 	* openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
 	clauses.
 
diff --git gcc/fortran/gfortran.h gcc/fortran/gfortran.h
index 4dd6298b3ddb..a14b4c44a18a 100644
--- gcc/fortran/gfortran.h
+++ gcc/fortran/gfortran.h
@@ -1345,7 +1345,7 @@  typedef struct gfc_omp_clauses
   gfc_expr_list *wait_list;
   gfc_expr_list *tile_list;
   unsigned async:1, gang:1, worker:1, vector:1, seq:1, independent:1;
-  unsigned wait:1, par_auto:1, gang_static:1;
+  unsigned par_auto:1, gang_static:1;
   unsigned if_present:1, finalize:1;
   locus loc;
 
diff --git gcc/fortran/openmp.c gcc/fortran/openmp.c
index e1560c1fe372..fb9c073ff779 100644
--- gcc/fortran/openmp.c
+++ gcc/fortran/openmp.c
@@ -1878,7 +1878,6 @@  gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask,
 	  if ((mask & OMP_CLAUSE_WAIT)
 	      && gfc_match ("wait") == MATCH_YES)
 	    {
-	      c->wait = true;
 	      match m = match_oacc_expr_list (" (", &c->wait_list, false);
 	      if (m == MATCH_ERROR)
 		{
@@ -4779,10 +4778,8 @@  resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses,
     resolve_positive_int_expr (omp_clauses->worker_expr, "WORKER");
   if (omp_clauses->vector_expr)
     resolve_positive_int_expr (omp_clauses->vector_expr, "VECTOR");
-  if (omp_clauses->wait)
-    if (omp_clauses->wait_list)
-      for (el = omp_clauses->wait_list; el; el = el->next)
-	resolve_scalar_int_expr (el->expr, "WAIT");
+  for (el = omp_clauses->wait_list; el; el = el->next)
+    resolve_scalar_int_expr (el->expr, "WAIT");
   if (omp_clauses->collapse && omp_clauses->tile_list)
     gfc_error ("Incompatible use of TILE and COLLAPSE at %L", &code->loc);
   if (omp_clauses->depend_source && code->op != EXEC_OMP_ORDERED)