Thanks for fixing everything.  This looks much better.

I don't have much, just small typos. It's up to Jason and Richard to take it from here.

Aldy

----

+      else
+       {
+         val = convert_like_with_context (conv, arg, fn, i-is_method,
+                                          conversion_warning
+                                          ? complain
+                                          : complain & (~tf_warning));

s/i-is_method/i - is_method/

I know this isn't your fault, since the original code had this, but if you're going to copy over, might as well fix small formatting errors :).

+/* Extracts all the array notation triplet information from LIST and stores 
them
+   in a 2-D arrays (size x rank) of START, LENGTH and STRIDE, holding the

s/2-D arrays/2-D array/

+   For example: For an array notation A[5:10:2], the vector start  will be

Extra space after start.

+      /* We need to do this because we are "faking" the builtin function types,
+        so the compiler does a bunch of typecasts and this will get rid of
+        all that!  */
+      while (TREE_CODE (call_fn) == CONVERT_EXPR
+            || TREE_CODE (call_fn) == NOP_EXPR)
+       call_fn = TREE_OPERAND (call_fn, 0);

We already have an automated way of doing this.  Will this work for you?:

/* Given an expression as a tree, strip any conversion that generates
   no instruction.  Accepts both tree and const_tree arguments since
   we are not modifying the tree itself.  */

#define STRIP_NOPS(EXP) \
  (EXP) = tree_strip_nop_conversions (CONST_CAST_TREE (EXP))

Similarly elsewhere.

+/* Helper function for expand_conditonal_array_notations. Encloses the

Two spaces after "."

+static tree
+expand_return_expr (tree expr)
+{
+  tree new_mod_list, new_var, new_mod, retval_expr;
+  location_t loc = EXPR_LOCATION (expr);
+
+  if (TREE_CODE (expr) != RETURN_EXPR)
+    return expr;

Well, since we're using C++, might as well move the comparison with RETURN_EXPR earlier, to avoid setting loc.

+  /* Skip empty subtrees.  */
+  if (!t)
+    return t;

No need to document the obvious.

+    case ARRAY_NOTATION_REF:
+      {
+       tree start_index, length, stride;
+       op1 = tsubst_non_call_postfix_expression (ARRAY_NOTATION_ARRAY (t),
+                                                 args, complain, in_decl);
+       start_index = RECUR (ARRAY_NOTATION_START (t));
+       length = RECUR (ARRAY_NOTATION_LENGTH (t));
+       stride = RECUR (ARRAY_NOTATION_STRIDE (t));
+       if (!cilkplus_an_triplet_types_ok_p (loc, start_index, length, stride,
+                                            TREE_TYPE (op1)))
+         RETURN (error_mark_node);
+       RETURN (build_array_notation_ref (EXPR_LOCATION (t), op1, start_index,
+                                         length, stride, TREE_TYPE (op1)));

Indentation of RETURN is wrong.

+      /* If the return expression contains array notatinos, then flag it as

s/notatinos/notations.  Though I like the sound of "notatinos" :-).

+      /* If find_rank returns false,  then it should have reported an error,

s/  then/then

+     to convert them. They will be broken up into modify exprs in future,

Two spaces after period.

Reply via email to