From patchwork Tue Jul 20 22:01:14 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [fortran] PR 40628, front-end optimization pass Date: Tue, 20 Jul 2010 12:01:14 -0000 From: Thomas Koenig X-Patchwork-Id: 59377 Message-Id: <1279663274.29693.4.camel@linux-fd1f.site> To: fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Well, here is an updated version of the patch. I have called the new file (mostly unchanged) frontend-passes.c, because my gdb gets confused about having two files called passes.c. I have also changed the place where the gfc_run_passes is called to resolve.c, as pault had suggested on IRC. Regression-tested, only allocate_with_typespec.f90 failed (which I also saw on gcc-testresults). OK? Thomas 2010-07-20 Thomas Koenig * Make-lang.in: Add fortran/frontend-passes.o. * gfortran.h: Add prototype for gfc_run_passes. * resolve.c (gfc_resolve): Call gfc_run_passes. * frontend-passes.c: New file. 2010-0717 Thomas Koenig * trim_optimize_1.f90: New test. * character_comparision_1.f90: New test. Index: Make-lang.in =================================================================== --- Make-lang.in (Revision 162346) +++ Make-lang.in (Arbeitskopie) @@ -66,7 +66,7 @@ fortran/trans.o fortran/trans-array.o fortran/trans-common.o \ fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o \ fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-openmp.o \ - fortran/trans-stmt.o fortran/trans-types.o + fortran/trans-stmt.o fortran/trans-types.o fortran/frontend-passes.o fortran_OBJS = $(F95_OBJS) gfortranspec.o Index: gfortran.h =================================================================== --- gfortran.h (Revision 162346) +++ gfortran.h (Arbeitskopie) @@ -2831,4 +2831,8 @@ #define CLASS_DATA(sym) sym->ts.u.derived->components +/* passes.c */ + +void gfc_run_passes (gfc_namespace *); + #endif /* GCC_GFORTRAN_H */ Index: resolve.c =================================================================== --- resolve.c (Revision 162346) +++ resolve.c (Arbeitskopie) @@ -13068,4 +13068,6 @@ gfc_current_ns = old_ns; cs_base = old_cs_base; ns->resolved = 1; + + gfc_run_passes (ns); }