diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2010-07-23 14:25:55 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2010-07-23 14:25:55 +0000 |
commit | 3d03ead0b8273efde57f6194617b35111a84b05d (patch) | |
tree | be85c1a1d325c1a8b6496500d502795c61e15506 /gcc/fortran/dependency.h | |
parent | c4fcd06a10ddacc81f535b165034dbaa93b6005c (diff) | |
download | gcc-3d03ead0b8273efde57f6194617b35111a84b05d.zip gcc-3d03ead0b8273efde57f6194617b35111a84b05d.tar.gz gcc-3d03ead0b8273efde57f6194617b35111a84b05d.tar.bz2 |
re PR fortran/24524 (Fortran dependency checking should reverse loops)
2009-07-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24524
* trans-array.c (gfc_init_loopinfo): Initialize the reverse
field.
gfc_trans_scalarized_loop_end: If reverse set in dimension n,
reverse the scalarization loop.
gfc_conv_resolve_dependencies: Pass the reverse field of the
loopinfo to gfc_dep_resolver.
trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
assignment by resetting loop.reverse.
gfortran.h : Add the gfc_reverse enum.
trans.h : Add the reverse field to gfc_loopinfo.
dependency.c (gfc_check_dependency): Pass null to the new arg
of gfc_dep_resolver.
(gfc_check_section_vs_section): Check for reverse dependencies.
(gfc_dep_resolver): Add reverse argument and deal with the loop
reversal logic.
dependency.h : Modify prototype for gfc_dep_resolver to include
gfc_reverse *.
From-SVN: r162462
Diffstat (limited to 'gcc/fortran/dependency.h')
-rw-r--r-- | gcc/fortran/dependency.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/fortran/dependency.h b/gcc/fortran/dependency.h index dd786be..bac2749 100644 --- a/gcc/fortran/dependency.h +++ b/gcc/fortran/dependency.h @@ -29,7 +29,6 @@ typedef enum } gfc_dep_check; - /*********************** Functions prototypes **************************/ bool gfc_ref_needs_temporary_p (gfc_ref *); @@ -41,6 +40,6 @@ int gfc_check_dependency (gfc_expr *, gfc_expr *, bool); int gfc_is_same_range (gfc_array_ref *, gfc_array_ref *, int, int); int gfc_expr_is_one (gfc_expr *, int); -int gfc_dep_resolver(gfc_ref *, gfc_ref *); +int gfc_dep_resolver(gfc_ref *, gfc_ref *, gfc_reverse *); int gfc_are_equivalenced_arrays (gfc_expr *, gfc_expr *); |