trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize array assignments...
authorRoger Sayle <roger@eyesopen.com>
Fri, 5 Jan 2007 21:27:16 +0000 (21:27 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Fri, 5 Jan 2007 21:27:16 +0000 (21:27 +0000)
commita30187538a72dc5784b02a327a063637c2d20886
tree41943ba20b346abc910f4e4192a3134252f5bbab
parentc573f4d5c6b1ac612911b8b5e77531a233d1cca1
trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize array assignments split out from gfc_trans_assignment.

* trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
array assignments split out from gfc_trans_assignment.
(gfc_trans_array_copy): New function to implement array to array
copies via calls to __builtin_memcpy.
(copyable_array_p): New helper function to identify an array of
simple/POD types, that may be copied/assigned using memcpy.
(gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
whole array assignments considered suitable by copyable_array_p.
Invoke gfc_trans_assignment_1 to perform the fallback scalarization.

* gfortran.dg/array_memcpy_1.f90: New test case.
* gfortran.dg/array_memcpy_2.f90: Likewise.

From-SVN: r120503
gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array_memcpy_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/array_memcpy_2.f90 [new file with mode: 0644]