From: Thomas Schwinge Date: Fri, 30 Nov 2018 20:39:18 +0000 (+0100) Subject: Clean up Fortran OpenACC wait clause handling X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fc2a1f2fa6d30a2813cfaa999bf49ea21e7e11c9;p=gcc.git 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. From-SVN: r266685 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 435ecf82f97..76bb0b9f5c0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,8 @@ 2018-11-30 Thomas Schwinge + * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all + users. + * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait clauses. diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 4dd6298b3dd..a14b4c44a18 100644 --- a/gcc/fortran/gfortran.h +++ b/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 a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index e1560c1fe37..fb9c073ff77 100644 --- a/gcc/fortran/openmp.c +++ b/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)