On Tue, Jan 07, 2014 at 09:24:21PM +0000, Iyer, Balaji V wrote:
> > -----Original Message-----
> > From: Jason Merrill [mailto:ja...@redhat.com]
> > Sent: Tuesday, January 7, 2014 3:41 PM
> > To: Iyer, Balaji V; 'Jeff Law'; 'Aldy Hernandez'
> > Cc: 'gcc-patches@gcc.gnu.org'; 'r...@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

Reply via email to