This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[dataflow] make regrename use deferred scanning


The attached patch, which is also pretty tiny, allows us to use deferred rescanning for regrename.

Actually it seems that someone had thought about it already but did not finish the work. Given this, ok to commit? I bootstrapped/regtested this on i686-pc-linux-gnu using "-frename-registers -O2" for all of BOOT_CFLAGS, CFLAGS_FOR_TARGET, and CXXFLAGS_FOR_TARGET.

Paolo


2007-02-15 Paolo Bonzini <bonzini@gnu.org>


        * regrename.c (regrename_optimize): Use deferred insn rescan.
	(do_replace): Do ask dataflow to rescan the insn.

Index: regrename.c
===================================================================
--- regrename.c (revision 121999)
+++ regrename.c (working copy)
@@ -197,7 +197,7 @@ regrename_optimize (void)
   df_set_flags (DF_LR_RUN_DCE);
   df_ri_add_problem (0);
   df_analyze ();
-  df_set_flags (DF_NO_INSN_RESCAN);
+  df_set_flags (DF_DEFER_INSN_RESCAN);

memset (tick, 0, sizeof tick);

@@ -382,9 +382,7 @@ do_replace (struct du_chain *chain, int
       if (regno >= FIRST_PSEUDO_REGISTER)
        ORIGINAL_REGNO (*chain->loc) = regno;
       REG_ATTRS (*chain->loc) = attr;
-#if 0
       df_insn_rescan (chain->insn);
-#endif
       chain = chain->next_use;
     }
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]