• sayle's avatar
    · 538374c5
    sayle authored
    	* dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
    	i.e. that the ARRAY_REF doesn't mention components.
    	* trans-array.c (gfc_constant_array_constructor_p): Export external
    	function renamed from constant_array_constructor_p.
    	(gfc_build_constant_array_constructor): Export.
    	(gfc_trans_array_constructor): Update call to the renamed function
    	constant_array_constructor_p.
    	* trans-array.h (gfc_constant_array_constructor_p): Prototype here.
    	(gfc_build_constant_array_constructor): Likewise.
    	* trans-expr.c (gfc_build_memcpy_call): New helper function split
    	out from gfc_trans_array_copy.
    	(gfc_trans_array_copy): Use gfc_build_memcpy_call.
    	(gfc_trans_array_constructor_copy): New function to optimize
    	assigning an entire array from a constant array constructor.
    	(gfc_trans_assignment): Call gfc_trans_array_constructor_copy
    	when appropriate.
    
    	* gfortran.dg/array_memcpy_3.f90: New test case.
    	* gfortran.dg/vect/vect-5.f90: Update vectorized loop count.
    
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121010 138bc75d-0d04-0410-961f-82ee72b054a4
    538374c5
trans-expr.c 109 KB