* trans.h (gfc_ss_info): Remove codimen field.
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Oct 2011 20:22:50 +0000 (20:22 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Oct 2011 20:22:50 +0000 (20:22 +0000)
* trans-array.c (gfc_get_array_ss): Don't set codimen field.
(gfc_trans_create_temp_array): Don't set descriptor's cobounds.
(gfc_trans_constant_array_constructor): Update loop upper limit.
(gfc_conv_ss_startstride): Don't set codimen field.
Don't get descriptor's cobounds.
(gfc_walk_variable_expr): Update dimension index.
* trans-intrinsic.c (trans_this_image, trans_image_index,
conv_intrinsic_cobound): Don't set codimen field

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179690 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-intrinsic.c
gcc/fortran/trans.h

index 42f1f82..046635c 100644 (file)
@@ -1,5 +1,17 @@
 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
 
+       * trans.h (gfc_ss_info): Remove codimen field.
+       * trans-array.c (gfc_get_array_ss): Don't set codimen field.
+       (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
+       (gfc_trans_constant_array_constructor): Update loop upper limit.
+       (gfc_conv_ss_startstride): Don't set codimen field.
+       Don't get descriptor's cobounds.
+       (gfc_walk_variable_expr): Update dimension index.
+       * trans-intrinsic.c (trans_this_image, trans_image_index,
+       conv_intrinsic_cobound): Don't set codimen field
+
+2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
+
        * trans.h (gfc_loopinfo): Remove codimen field.
        * trans-array.c (gfc_set_vector_loop_bounds,
        gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
@@ -75,7 +87,7 @@
 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
 
        * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
-       descriptor setup code. 
+       descriptor setup code.
 
 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
 
index 0a9d281..fa05d2b 100644 (file)
@@ -526,7 +526,6 @@ gfc_get_array_ss (gfc_ss *next, gfc_expr *expr, int dimen, gfc_ss_type type)
   ss->expr = expr;
   info = &ss->data.info;
   info->dimen = dimen;
-  info->codimen = 0;
   for (i = 0; i < info->dimen; i++)
     info->dim[i] = i;
 
@@ -973,13 +972,6 @@ gfc_trans_create_temp_array (stmtblock_t * pre, stmtblock_t * post,
                              size, tmp);
       size = gfc_evaluate_now (size, pre);
     }
-  for (n = info->dimen; n < info->dimen + info->codimen; n++)
-    {
-      gfc_conv_descriptor_lbound_set (pre, desc, gfc_rank_cst[n],
-                                      gfc_index_zero_node);
-      if (n < info->dimen + info->codimen - 1)
-       gfc_conv_descriptor_ubound_set (pre, desc, gfc_rank_cst[n], loop->to[n]);
-    }
 
   /* Get the size of the array.  */
 
@@ -1872,7 +1864,7 @@ gfc_trans_constant_array_constructor (gfc_loopinfo * loop,
   info->data = gfc_build_addr_expr (NULL_TREE, tmp);
   info->offset = gfc_index_zero_node;
 
-  for (i = 0; i < info->dimen + info->codimen; i++)
+  for (i = 0; i < info->dimen; i++)
     {
       info->delta[i] = gfc_index_zero_node;
       info->start[i] = gfc_index_zero_node;
@@ -3330,12 +3322,6 @@ done:
          for (n = 0; n < ss->data.info.dimen; n++)
            gfc_conv_section_startstride (loop, ss, ss->data.info.dim[n],
                                          false, false);
-         for (n = ss->data.info.dimen;
-              n < ss->data.info.dimen + ss->data.info.codimen; n++)
-           gfc_conv_section_startstride (loop, ss, ss->data.info.dim[n], true,
-                                         n == ss->data.info.dimen
-                                              + ss->data.info.codimen -1);
-
          break;
 
        case GFC_SS_INTRINSIC:
@@ -7690,8 +7676,7 @@ gfc_walk_variable_expr (gfc_ss * ss, gfc_expr * expr)
                case DIMEN_RANGE:
                   /* We don't add anything for sections, just remember this
                      dimension for later.  */
-                 newss->data.info.dim[newss->data.info.dimen
-                                      + newss->data.info.codimen] = n;
+                 newss->data.info.dim[newss->data.info.dimen] = n;
                  if (n < ar->dimen)
                    newss->data.info.dimen++;
                  break;
@@ -7703,8 +7688,7 @@ gfc_walk_variable_expr (gfc_ss * ss, gfc_expr * expr)
                                              1, GFC_SS_VECTOR);
                  indexss->loop_chain = gfc_ss_terminator;
                  newss->data.info.subscript[n] = indexss;
-                 newss->data.info.dim[newss->data.info.dimen
-                                      + newss->data.info.codimen] = n;
+                 newss->data.info.dim[newss->data.info.dimen] = n;
                  if (n < ar->dimen)
                    newss->data.info.dimen++;
                  break;
index bc21b02..c47e678 100644 (file)
@@ -985,7 +985,6 @@ trans_this_image (gfc_se * se, gfc_expr *expr)
   gfc_init_se (&argse, NULL);
   ss = walk_coarray (expr->value.function.actual->expr);
   gcc_assert (ss != gfc_ss_terminator);
-  ss->data.info.codimen = corank;
   argse.want_coarray = 1;
   gfc_conv_expr_descriptor (&argse, expr->value.function.actual->expr, ss);
   gfc_add_block_to_block (&se->pre, &argse.pre);
@@ -1171,7 +1170,6 @@ trans_image_index (gfc_se * se, gfc_expr *expr)
   gfc_init_se (&argse, NULL);
   ss = walk_coarray (expr->value.function.actual->expr);
   gcc_assert (ss != gfc_ss_terminator);
-  ss->data.info.codimen = corank;
   argse.want_coarray = 1;
   gfc_conv_expr_descriptor (&argse, expr->value.function.actual->expr, ss);
   gfc_add_block_to_block (&se->pre, &argse.pre);
@@ -1496,7 +1494,6 @@ conv_intrinsic_cobound (gfc_se * se, gfc_expr * expr)
 
   ss = walk_coarray (arg->expr);
   gcc_assert (ss != gfc_ss_terminator);
-  ss->data.info.codimen = corank;
   gfc_init_se (&argse, NULL);
   argse.want_coarray = 1;
 
index 085334c..535c207 100644 (file)
@@ -118,7 +118,7 @@ gfc_coarray_type;
 
 typedef struct gfc_ss_info
 {
-  int dimen, codimen;
+  int dimen;
   /* The ref that holds information on this section.  */
   gfc_ref *ref;
   /* The descriptor of this array.  */