trans-array.c (gfc_build_constant_array_constructor): When the shape of the construct...
authorRoger Sayle <sayle@gcc.gnu.org>
Sun, 18 Feb 2007 20:05:00 +0000 (20:05 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 18 Feb 2007 20:05:00 +0000 (20:05 +0000)
commit61a04b5b59974a336e436f0aac7d0e4353007dc9
treee0bd20d27931c0f092bc30265db72ff3f635d2eb
parent9bffa1718a6f2edeeec1aec1f4afef0ff69584ce
trans-array.c (gfc_build_constant_array_constructor): When the shape of the constructor is known...

* trans-array.c (gfc_build_constant_array_constructor): When the
shape of the constructor is known, use that to construct the
gfc_array_spec.
(gfc_trans_constant_array_constructor): Initialize the "info"
information for all of the dimensions of the array constructor.
(constant_array_constructor_loop_size): New function.
(gfc_trans_array_constructor): Use it to determine whether a
loop is suitable for "constant array constructor" optimization.

* trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
instead of build2, to avoid conditions like "(a != b) != 0".

* gfortran.dg/array_constructor_15.f90: New test case.

From-SVN: r122103
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array_constructor_15.f90 [new file with mode: 0644]