On Tue, Dec 17, 2013 at 03:51:14AM +0000, Iyer, Balaji V wrote:
> Hi Jakub,     
>       I will work on this, but I need a couple clarifications about some of 
> your comments. Please see below:
> 
> > > +#define CILK_SIMD_FN_CLAUSE_MASK                         \
> > > + ( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_SIMDLEN)
> >     \
> > > + | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_LINEAR)
> >     \
> > > + | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_UNIFORM)
> >     \
> > > + | (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_INBRANCH)
> >     \
> > > + | (OMP_CLAUSE_MASK_1 <<
> > PRAGMA_OMP_CLAUSE_NOTINBRANCH))
> > 
> > I thought you'd instead add there PRAGMA_CILK_CLAUSE_VECTORLENGTH,
> > PRAGMA_CILK_CLAUSE_MASK and PRAGMA_CILK_CLAUSE_NOMASK (or
> > similar).
> > 
> 
> I looked at OpenACC implementation and they seem to use the OMP_CLAUSE_* 
> (line # 11174 in c-parser.c)

It uses just PRAGMA_OMP_CLAUSE_NONE, which really means no clauses at all (I
think it is for now).

> Also, If I created CILK_CLAUSE_* variants, I have to re-create another 
> function similar to c_parser_omp_all_clauses, whose workings will be 
> identical to the c_parser_omp_all_clauses. Is that OK with you?

No, I'd remove enum pragma_cilk_clause altogether and fold it into the end of
pragma_omp_clause, as:
  PRAGMA_CILK_CLAUSE_VECTORLENGTH,
  PRAGMA_CILK_CLAUSE_MASK,
  PRAGMA_CILK_CLAUSE_NOMASK,
  PRAGMA_CILK_CLAUSE_NONE = PRAGMA_OMP_CLAUSE_NONE,
  PRAGMA_CILK_CLAUSE_LINEAR = PRAGMA_OMP_CLAUSE_LINEAR,
  PRAGMA_CILK_CLAUSE_PRIVATE = PRAGMA_OMP_CLAUSE_PRIVATE,
  PRAGMA_CILK_CLAUSE_FIRSTPRIVATE = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
  PRAGMA_CILK_CLAUSE_LASTPRIVATE = PRAGMA_OMP_CLAUSE_LASTPRIVATE,
  PRAGMA_CILK_CLAUSE_REDUCTION = PRAGMA_OMP_CLAUSE_REDUCTION
so that you can use it in the same bitmasks.

That way, you don't have to change anything in c_parser_omp_all_clauses,
just add handling of the 3 clauses that don't have OpenMP counterparts.

        Jakub

Reply via email to