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