This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: OpenACC wait clause


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]