From bee1695c2186d21d30462f1186eea09e9340aacd Mon Sep 17 00:00:00 2001 From: Mikael Morin Date: Thu, 3 Nov 2011 20:46:00 +0000 Subject: [PATCH] trans-array.c (gfc_trans_preloop_setup): Move code earlier. * trans-array.c (gfc_trans_preloop_setup): Move code earlier. From-SVN: r180843 --- gcc/fortran/ChangeLog | 4 ++++ gcc/fortran/trans-array.c | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index cf2222a7a36..fb2123c2558 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): Move code earlier. + 2011-11-03 Mikael Morin * trans-array.c (gfc_trans_preloop_setup): Move array reference diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 4b21476d7d5..91359e9c57e 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -2876,6 +2876,17 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, 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 elemental dimensions. It will have been initialized with the base offset of the array. */ @@ -2900,17 +2911,6 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, 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 { -- 2.30.2