This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: OpenACC wait clause
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Cesar Philippidis <cesar at codesourcery dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 7 Jun 2016 17:02:52 +0200
- Subject: Re: OpenACC wait clause
- Authentication-results: sourceware.org; auth=none
- References: <20160607111307 dot GQ7387 at tucnak dot redhat dot com> <5756E1B6 dot 605 at codesourcery dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Jun 07, 2016 at 08:01:10AM -0700, Cesar Philippidis wrote:
> On 06/07/2016 04:13 AM, Jakub Jelinek wrote:
>
> > I've noticed
> > if ((mask & OMP_CLAUSE_WAIT)
> > && !c->wait
> > && gfc_match ("wait") == MATCH_YES)
> > {
> > c->wait = true;
> > match_oacc_expr_list (" (", &c->wait_list, false);
> > continue;
> > }
> > which looks just weird and confusing. Why isn't this instead:
> > if ((mask & OMP_CLAUSE_WAIT)
> > && !c->wait
> > && (match_oacc_expr_list ("wait (", &c->wait_list, false)
> > == MATCH_YES))
> > {
> > c->wait = true;
> > continue;
> > }
> > ? Otherwise you happily accept wait without following (, perhaps even
> > combined with another clause without any space in between etc.
>
> Both acc wait and async accept optional parenthesis arguments. E.g.,
>
> #pragma acc wait
>
> blocks for all of the async streams to complete before proceeding, whereas
>
> #pragma acc wait (1, 5)
>
> only blocks for async streams 1 and 5.
But then you need to set need_space = true; if it doesn't have the ( after
it.
Jakub