aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorStan Cox <scox@cygnus.com>2000-05-11 13:52:44 +0000
committerStan Cox <scox@gcc.gnu.org>2000-05-11 13:52:44 +0000
commit5fa41e1377b0a0557d2629fdb76652893ec8b328 (patch)
treede16cdc450bf07d7d0789dabc3235be3498d21f3 /gcc/toplev.c
parentf5b105ca62822071a14228e1790f69429a9990c8 (diff)
downloadgcc-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.c28
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. */