On Tue, Dec 17, 2013 at 09:13:05PM +0000, Iyer, Balaji V wrote:
> @@ -10418,6 +10528,12 @@
>        step = c_parser_expression (parser).value;
>        mark_exp_read (step);
>        step = c_fully_fold (step, false, NULL);
> +      if (is_cilk_simd_fn && TREE_CODE (step) == PARM_DECL)
> +     {
> +       sorry ("using parameters for %<linear%> step is not supported yet "
> +              "in this release");

I meant actually
        sorry ("using parameters for %<linear%> step is not supported yet");

> @@ -10933,8 +11051,14 @@
>         c_name = "aligned";
>         break;
>       case PRAGMA_OMP_CLAUSE_LINEAR:
> -       clauses = c_parser_omp_clause_linear (parser, clauses);
> -       c_name = "linear";
> +       {
> +         bool is_cilk_simd_fn = false;
> +         if ((mask & PRAGMA_CILK_CLAUSE_VECTORLENGTH) == 0)
> +           is_cilk_simd_fn = true;

I don't think this will work.  PRAGMA_CILK_CLAUSE_VECTORLENGTH
is something like 40 I think, so testing whether the mask doesn't
include copyin and default clauses is not what you wanted probably.
What I meant is
  if (((mask >> PRAGMA_CILK_CLAUSE_VECTORLENGTH) & 1) != 0)
    is_cilk_simd_fn = true;
(note, for 32-bit HWI targets, omp_clause_mask is a class and not
all arithmetic is actually supported on it, so better limit yourself
to forms used elsewhere already).

> @@ -12754,10 +12882,20 @@
>  c_finish_omp_declare_simd (c_parser *parser, tree fndecl, tree parms,
>                          vec<c_token> clauses)
>  {
> +

Please remove this extra vertical space.

Otherwise looks good to me, just not sure where do you handle processor
clause (or how Cilk+ simd clones specify the ISA they want to use).

        Jakub

Reply via email to