This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
patch committed to dataflow branch
- From: Kenneth Zadeck <zadeck at naturalbridge dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Berlin, Daniel" <dberlin at dberlin dot org>, "Zadeck, Kenneth" <zadeck at naturalbridge dot com>
- Date: Wed, 19 Apr 2006 08:28:58 -0400
- Subject: patch committed to dataflow branch
This patch removes all references to flow from after combine.
This code has been bootstrapped and regression tested on
x86_64-unknown-linux-gnu
powerpc64-unknown-linux-gnu
i686-pc-linux-gnu
Kenny
2006-04-19 Kenneth Zadeck <zadeck@naturalbridge.com>
* ifcvt.c (rest_of_handle_if_after_combine): Removed flow
scaffolding.
* passes.c (init_optimization_passes): Moved clear_df to after
combine and changed two expensive dce passes into a dse and fast
dce pass.
Index: ifcvt.c
===================================================================
--- ifcvt.c (revision 112878)
+++ ifcvt.c (working copy)
@@ -3986,24 +3986,9 @@ gate_handle_if_after_combine (void)
static unsigned int
rest_of_handle_if_after_combine (void)
{
- bool had_df = rtl_df != NULL;
- if (had_df)
- {
- df_finish (rtl_df);
- rtl_df = NULL;
- }
-
no_new_pseudos = 0;
if_convert ();
no_new_pseudos = 1;
- if (had_df)
- {
- rtl_df = df_init (DF_HARD_REGS);
- df_lr_add_problem (rtl_df, 0);
- df_ur_add_problem (rtl_df, 0);
- df_ri_add_problem (rtl_df, 0);
- df_analyze (rtl_df);
- }
return 0;
}
Index: passes.c
===================================================================
--- passes.c (revision 113055)
+++ passes.c (working copy)
@@ -651,10 +651,10 @@ init_optimization_passes (void)
NEXT_PASS (pass_rtl_fwprop_addr);
NEXT_PASS (pass_life);
NEXT_PASS (pass_combine);
- NEXT_PASS (pass_rtl_dce);
- NEXT_PASS (pass_if_after_combine);
- NEXT_PASS (pass_rtl_dce);
NEXT_PASS (pass_clear_df);
+ NEXT_PASS (pass_rtl_dse);
+ NEXT_PASS (pass_if_after_combine);
+ NEXT_PASS (pass_fast_rtl_dce);
NEXT_PASS (pass_partition_blocks);
NEXT_PASS (pass_regmove);
NEXT_PASS (pass_split_all_insns);