trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
* trans-array.c (gfc_conv_section_startstride): Remove coarray argument. Remove conditions on coarray. (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride. (gfc_conv_expr_descriptor): Ditto. Add assertions before the call. From-SVN: r179693
This commit is contained in:
parent
6cb0246c1b
commit
065c6f9de2
|
@ -1,3 +1,10 @@
|
|||
2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
|
||||
|
||||
* trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
|
||||
Remove conditions on coarray.
|
||||
(gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
|
||||
(gfc_conv_expr_descriptor): Ditto. Add assertions before the call.
|
||||
|
||||
2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
|
||||
|
||||
* trans-array.c (gfc_conv_section_startstride): Remove coarray_last
|
||||
|
|
|
@ -3200,8 +3200,7 @@ evaluate_bound (stmtblock_t *block, tree *bounds, gfc_expr ** values,
|
|||
/* Calculate the lower bound of an array section. */
|
||||
|
||||
static void
|
||||
gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
|
||||
bool coarray)
|
||||
gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim)
|
||||
{
|
||||
gfc_expr *stride = NULL;
|
||||
tree desc;
|
||||
|
@ -3219,7 +3218,6 @@ gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
|
|||
/* We use a zero-based index to access the vector. */
|
||||
info->start[dim] = gfc_index_zero_node;
|
||||
info->end[dim] = NULL;
|
||||
if (!coarray)
|
||||
info->stride[dim] = gfc_index_one_node;
|
||||
return;
|
||||
}
|
||||
|
@ -3227,7 +3225,6 @@ gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
|
|||
gcc_assert (ar->dimen_type[dim] == DIMEN_RANGE
|
||||
|| ar->dimen_type[dim] == DIMEN_THIS_IMAGE);
|
||||
desc = info->descriptor;
|
||||
if (!coarray)
|
||||
stride = ar->stride[dim];
|
||||
|
||||
/* Calculate the start of the range. For vector subscripts this will
|
||||
|
@ -3240,9 +3237,9 @@ gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
|
|||
evaluate_bound (&loop->pre, info->end, ar->end, desc, dim, false);
|
||||
|
||||
/* Calculate the stride. */
|
||||
if (!coarray && stride == NULL)
|
||||
if (stride == NULL)
|
||||
info->stride[dim] = gfc_index_one_node;
|
||||
else if (!coarray)
|
||||
else
|
||||
{
|
||||
gfc_init_se (&se, NULL);
|
||||
gfc_conv_expr_type (&se, stride, gfc_array_index_type);
|
||||
|
@ -3319,8 +3316,7 @@ done:
|
|||
gfc_conv_ss_descriptor (&loop->pre, ss, !loop->array_parameter);
|
||||
|
||||
for (n = 0; n < ss->data.info.dimen; n++)
|
||||
gfc_conv_section_startstride (loop, ss, ss->data.info.dim[n],
|
||||
false);
|
||||
gfc_conv_section_startstride (loop, ss, ss->data.info.dim[n]);
|
||||
break;
|
||||
|
||||
case GFC_SS_INTRINSIC:
|
||||
|
@ -5975,7 +5971,14 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, gfc_ss * ss)
|
|||
for (n = ss->data.info.dimen; n < ss->data.info.dimen + codim - 1;
|
||||
n++)
|
||||
{
|
||||
gfc_conv_section_startstride (&loop, ss, n, true);
|
||||
/* Make sure we are not lost somehow. */
|
||||
gcc_assert (info->ref->u.ar.dimen_type[n] == DIMEN_THIS_IMAGE);
|
||||
|
||||
/* Make sure the call to gfc_conv_section_startstride won't
|
||||
generate unnecessary code to calculate stride. */
|
||||
gcc_assert (info->ref->u.ar.stride[n] == NULL);
|
||||
|
||||
gfc_conv_section_startstride (&loop, ss, n);
|
||||
loop.from[n] = info->start[n];
|
||||
loop.to[n] = info->end[n];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue