diff options
author | Stan Cox <scox@cygnus.com> | 2000-05-11 13:52:44 +0000 |
---|---|---|
committer | Stan Cox <scox@gcc.gnu.org> | 2000-05-11 13:52:44 +0000 |
commit | 5fa41e1377b0a0557d2629fdb76652893ec8b328 (patch) | |
tree | de16cdc450bf07d7d0789dabc3235be3498d21f3 /gcc/toplev.c | |
parent | f5b105ca62822071a14228e1790f69429a9990c8 (diff) | |
download | gcc-5fa41e1377b0a0557d2629fdb76652893ec8b328.zip gcc-5fa41e1377b0a0557d2629fdb76652893ec8b328.tar.gz gcc-5fa41e1377b0a0557d2629fdb76652893ec8b328.tar.bz2 |
regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
* regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
* timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
* toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
From-SVN: r33845
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 05d1846..1d89a7c 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -272,9 +272,9 @@ enum dump_file_index DFI_flow2, DFI_ce2, DFI_peephole2, + DFI_rnreg, DFI_sched2, DFI_bbro, - DFI_rnreg, DFI_jump2, DFI_mach, DFI_dbr, @@ -314,9 +314,9 @@ struct dump_file_info dump_file[DFI_MAX] = { "flow2", 'w', 1, 0, 0 }, { "ce2", 'E', 1, 0, 0 }, { "peephole2", 'z', 1, 0, 0 }, + { "rnreg", 'n', 1, 0, 0 }, { "sched2", 'R', 1, 0, 0 }, { "bbro", 'B', 1, 0, 0 }, - { "rnreg", 'n', 1, 0, 0 }, { "jump2", 'J', 1, 0, 0 }, { "mach", 'M', 1, 0, 0 }, { "dbr", 'd', 0, 0, 0 }, @@ -3358,7 +3358,7 @@ rest_of_compilation (decl) cleanup_cfg (insns); life_analysis (insns, rtl_dump_file, PROP_FINAL); - /* This is kind of heruistics. We need to run combine_stack_adjustments + /* This is kind of a heuristic. We need to run combine_stack_adjustments even for machines with possibly nonzero RETURN_POPS_ARGS and ACCUMULATE_OUTGOING_ARGS. We expect that only ports having push instructions will have popping returns. */ @@ -3400,6 +3400,17 @@ rest_of_compilation (decl) } #endif + if (optimize > 0 && flag_rename_registers) + { + timevar_push (TV_RENAME_REGISTERS); + open_dump_file (DFI_rnreg, decl); + + regrename_optimize (); + + close_dump_file (DFI_rnreg, print_rtl_with_bb, insns); + timevar_pop (TV_RENAME_REGISTERS); + } + #ifdef INSN_SCHEDULING if (optimize > 0 && flag_schedule_insns_after_reload) { @@ -3435,17 +3446,6 @@ rest_of_compilation (decl) timevar_pop (TV_REORDER_BLOCKS); } - if (optimize > 0 && flag_rename_registers) - { - timevar_push (TV_RENAME_REGISTERS); - open_dump_file (DFI_rnreg, decl); - - regrename_optimize (); - - close_dump_file (DFI_rnreg, print_rtl_with_bb, insns); - timevar_pop (TV_RENAME_REGISTERS); - } - /* One more attempt to remove jumps to .+1 left by dead-store elimination. Also do cross-jumping this time and delete no-op move insns. */ |