[PATCH] _Cilk_for for C and C++

Jakub Jelinek jakub@redhat.com
Tue Jan 7 21:29:00 GMT 2014


On Tue, Jan 07, 2014 at 09:24:21PM +0000, Iyer, Balaji V wrote:
> > -----Original Message-----
> > From: Jason Merrill [mailto:jason@redhat.com]
> > Sent: Tuesday, January 7, 2014 3:41 PM
> > To: Iyer, Balaji V; 'Jeff Law'; 'Aldy Hernandez'
> > Cc: 'gcc-patches@gcc.gnu.org'; 'rth@redhat.com'; 'Jakub Jelinek'
> > Subject: Re: [PATCH] _Cilk_for for C and C++
> > 
> > On 12/17/2013 07:21 PM, Iyer, Balaji V wrote:
> > > The reason why I store it in OMP_FOR_CLAUSE is because OMP clauses
> > cannot occur in _Cilk_for. So adding a new clause seem to be an overkill
> > IMHO. I need a place to store the grain value and so I chose this spot.
> > 
> > But code expects OMP_FOR_CLAUSES to have a certain form, and you are
> > violating that so that now code needs to check whether we're dealing with a
> > for loop in order to know to parse OMP_FOR_CLAUSES.  Doing it your way
> > requires lots of little special cases.  Please represent it as a clause.
> 
> Hi Jason,
> 	In gimplify_omp_for, I remove the information in OMP_FOR_CLAUSES ()
> 	and then replace it with a NULL_TREE.  Till that point, nothing
> 	steps on it (except in pt.c and that I am handling it).  Then the
> 	grain value is stored in gimple tree for omp_for.

So, you are abusing OMP_FOR_CLAUSES for shorter time, still, I agree with
Jason that you shouldn't do that.

If you don't want to add a new clause, just use a similar existing one,
if grain is something like scheduling chunk size, just with a different
name for it, then using OMP_CLAUSE_SCHEDULE with OMP_CLAUSE_SCHEDULE_EXPR
being the grain expression would be certainly cleaner.
But even adding a new artificial clause isn't that hard.

	Jakub



More information about the Gcc-patches mailing list