* trans-array.c (gfc_build_constant_array_constructor): When the
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Feb 2007 20:05:00 +0000 (20:05 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Feb 2007 20:05:00 +0000 (20:05 +0000)
commiteb744cd410c8916c74a6b6bcbac95bf56e9ff372
treee0bd20d27931c0f092bc30265db72ff3f635d2eb
parentd374ac2e2fc9cfdf28f6f2f1bf95874cc45b458d
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122103 138bc75d-0d04-0410-961f-82ee72b054a4
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]