Commit bee1695c by Mikael Morin

trans-array.c (gfc_trans_preloop_setup): Move code earlier.


	* trans-array.c (gfc_trans_preloop_setup): Move code earlier.

From-SVN: r180843
parent 1fb35a90
2011-11-03 Mikael Morin <mikael@gcc.gnu.org> 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
* trans-array.c (gfc_trans_preloop_setup): Move code earlier.
2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
* trans-array.c (gfc_trans_preloop_setup): Move array reference * trans-array.c (gfc_trans_preloop_setup): Move array reference
initialisation earlier. Factor subsequent array references. initialisation earlier. Factor subsequent array references.
......
...@@ -2876,6 +2876,17 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, ...@@ -2876,6 +2876,17 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag,
if (dim == info->dimen - 1) if (dim == info->dimen - 1)
{ {
i = loop->order[0];
/* For the time being, the innermost loop is unconditionally on
the first dimension of the scalarization loop. */
gcc_assert (i == 0);
stride = gfc_conv_array_stride (info->descriptor, info->dim[i]);
/* Calculate the stride of the innermost loop. Hopefully this will
allow the backend optimizers to do their stuff more effectively.
*/
info->stride0 = gfc_evaluate_now (stride, pblock);
/* For the outermost loop calculate the offset due to any /* For the outermost loop calculate the offset due to any
elemental dimensions. It will have been initialized with the elemental dimensions. It will have been initialized with the
base offset of the array. */ base offset of the array. */
...@@ -2900,17 +2911,6 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, ...@@ -2900,17 +2911,6 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag,
info->offset = gfc_evaluate_now (info->offset, pblock); info->offset = gfc_evaluate_now (info->offset, pblock);
} }
} }
i = loop->order[0];
/* For the time being, the innermost loop is unconditionally on
the first dimension of the scalarization loop. */
gcc_assert (i == 0);
stride = gfc_conv_array_stride (info->descriptor, info->dim[i]);
/* Calculate the stride of the innermost loop. Hopefully this will
allow the backend optimizers to do their stuff more effectively.
*/
info->stride0 = gfc_evaluate_now (stride, pblock);
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment