trans-array.c (constant_array_constructor_p): New function to determine whether an...
authorRoger Sayle <roger@eyesopen.com>
Mon, 8 Jan 2007 17:56:37 +0000 (17:56 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Mon, 8 Jan 2007 17:56:37 +0000 (17:56 +0000)
commit62511fb1ea2fdf6656dac150ccb9dc3859dad9b3
treec9b5bb0f48cbe819949ec64d4b6789655ee9d72f
parentf255541fb7bdd1b1da1a8c661967021164fa515b
trans-array.c (constant_array_constructor_p): New function to determine whether an array constructor consists only of...

* trans-array.c (constant_array_constructor_p): New function to
determine whether an array constructor consists only of constant
elements, and if so return it's size.
(gfc_build_constant_array_constructor): Construct a statically
initialized gfortran array for a given EXPR_ARRAY.
(gfc_trans_constant_array_constructor): Efficiently scalarize
a constant array constructor.
(gfc_trans_array_constructor):  Tidy up use of CONST_STRING.
Special case scalarization of constant array constructors, all of
whose elements are specified, using constant_array_constructor_p
and gfc_trans_constant_array_constructor.
(gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
before adding it to index, to avoid creating a NON_LVALUE_EXPR.

* gfortran.dg/array_constructor_14.f90: New test case.
* gfortran.dg/vect/vect-5.f90: Update test for improved alignment.

From-SVN: r120584
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array_constructor_14.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/vect/vect-5.f90