summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog28
-rw-r--r--gcc/bb-reorder.c8
-rw-r--r--gcc/cfglayout.c4
-rw-r--r--gcc/emit-rtl.c8
-rw-r--r--gcc/except.c4
-rw-r--r--gcc/final.c4
-rw-r--r--gcc/flow.c18
-rw-r--r--gcc/function.c4
-rw-r--r--gcc/integrate.c4
-rw-r--r--gcc/jump.c8
-rw-r--r--gcc/loop-init.c58
-rw-r--r--gcc/mode-switching.c4
-rw-r--r--gcc/recog.c12
-rw-r--r--gcc/regmove.c2
-rw-r--r--gcc/tree-optimize.c4
15 files changed, 111 insertions, 59 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e8246dfff4c..1289a219a15 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,31 @@
+2005-08-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
+ Add dump.
+ * cfglayout.c (pass_insn_locators_initialize): Add dump.
+ * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
+ Add dump.
+ * except.c (pass_convert_to_eh_region_ranges): Add dump.
+ * final.c (pass_shorten_branches): Add dump.
+ * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
+ (pass_life): Rename dump.
+ (rest_of_handle_flow2): Remove initial verify_flow_info.
+ * function.c (pass_instantiate_virtual_regs): Add dump.
+ * integrate.c (pass_initial_value_sets): Add dump.
+ * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
+ * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
+ (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
+ pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
+ (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
+ gate_rtl_unrool_and_peel_loops): New.
+ (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
+ rtl_doloop): Do not look at flags.
+ * mode-switching.c (pass_mode_switching): Add dump.
+ * recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
+ pass_split_before_regstack): Add dump.
+ * regmove.c (pass_stack_adjustments): Add dump.
+ * tree-optimize.c (pass_fixup_cfg): Add dump.
+
2005-08-10 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
PR 23309
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 76faedaaee3..2dca3e373e8 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -2086,7 +2086,7 @@ done:
struct tree_opt_pass pass_duplicate_computed_gotos =
{
- NULL, /* name */
+ "compgotos", /* name */
gate_duplicate_computed_gotos, /* gate */
duplicate_computed_gotos, /* execute */
NULL, /* sub */
@@ -2097,7 +2097,7 @@ struct tree_opt_pass pass_duplicate_computed_gotos =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
@@ -2276,7 +2276,7 @@ rest_of_handle_partition_blocks (void)
struct tree_opt_pass pass_partition_blocks =
{
- NULL, /* name */
+ "bbpart", /* name */
gate_handle_partition_blocks, /* gate */
rest_of_handle_partition_blocks, /* execute */
NULL, /* sub */
@@ -2287,7 +2287,7 @@ struct tree_opt_pass pass_partition_blocks =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 2a8a1221ac9..c63c6f7a4cf 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -333,7 +333,7 @@ insn_locators_initialize (void)
struct tree_opt_pass pass_insn_locators_initialize =
{
- NULL, /* name */
+ "locators", /* name */
NULL, /* gate */
insn_locators_initialize, /* execute */
NULL, /* sub */
@@ -344,7 +344,7 @@ struct tree_opt_pass pass_insn_locators_initialize =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 01a224f3b32..18c71b14890 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2139,7 +2139,7 @@ unshare_all_rtl (void)
struct tree_opt_pass pass_unshare_all_rtl =
{
- NULL, /* name */
+ "unshare", /* name */
NULL, /* gate */
unshare_all_rtl, /* execute */
NULL, /* sub */
@@ -2150,7 +2150,7 @@ struct tree_opt_pass pass_unshare_all_rtl =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
@@ -3727,7 +3727,7 @@ remove_unnecessary_notes (void)
struct tree_opt_pass pass_remove_unnecessary_notes =
{
- NULL, /* name */
+ "eunotes", /* name */
NULL, /* gate */
remove_unnecessary_notes, /* execute */
NULL, /* sub */
@@ -3738,7 +3738,7 @@ struct tree_opt_pass pass_remove_unnecessary_notes =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/except.c b/gcc/except.c
index 4578ae903d8..df91a1b2b18 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -3241,7 +3241,7 @@ convert_to_eh_region_ranges (void)
struct tree_opt_pass pass_convert_to_eh_region_ranges =
{
- NULL, /* name */
+ "eh-ranges", /* name */
NULL, /* gate */
convert_to_eh_region_ranges, /* execute */
NULL, /* sub */
@@ -3252,7 +3252,7 @@ struct tree_opt_pass pass_convert_to_eh_region_ranges =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/final.c b/gcc/final.c
index e3b62a1553e..e1a4c189cf6 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -3974,7 +3974,7 @@ rest_of_handle_shorten_branches (void)
struct tree_opt_pass pass_shorten_branches =
{
- NULL, /* name */
+ "shorten", /* name */
NULL, /* gate */
rest_of_handle_shorten_branches, /* execute */
NULL, /* sub */
@@ -3985,7 +3985,7 @@ struct tree_opt_pass pass_shorten_branches =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/flow.c b/gcc/flow.c
index 2ebcdda0073..79b26d698f0 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -4356,11 +4356,14 @@ recompute_reg_usage (void)
in sched1 to die. To solve this update the DEATH_NOTES
here. */
update_life_info (NULL, UPDATE_LIFE_LOCAL, PROP_REG_INFO | PROP_DEATH_NOTES);
+
+ if (dump_file)
+ dump_flow_info (dump_file);
}
struct tree_opt_pass pass_recompute_reg_usage =
{
- NULL, /* name */
+ "life2", /* name */
NULL, /* gate */
recompute_reg_usage, /* execute */
NULL, /* sub */
@@ -4371,8 +4374,8 @@ struct tree_opt_pass pass_recompute_reg_usage =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
- 0 /* letter */
+ TODO_dump_func, /* todo_flags_finish */
+ 'f' /* letter */
};
/* Optionally removes all the REG_DEAD and REG_UNUSED notes from a set of
@@ -4538,7 +4541,7 @@ rest_of_handle_remove_death_notes (void)
struct tree_opt_pass pass_remove_death_notes =
{
- NULL, /* name */
+ "ednotes", /* name */
gate_remove_death_notes, /* gate */
rest_of_handle_remove_death_notes, /* execute */
NULL, /* sub */
@@ -4587,7 +4590,7 @@ rest_of_handle_life (void)
struct tree_opt_pass pass_life =
{
- "life", /* name */
+ "life1", /* name */
NULL, /* gate */
rest_of_handle_life, /* execute */
NULL, /* sub */
@@ -4606,11 +4609,6 @@ struct tree_opt_pass pass_life =
static void
rest_of_handle_flow2 (void)
{
- /* Re-create the death notes which were deleted during reload. */
-#ifdef ENABLE_CHECKING
- verify_flow_info ();
-#endif
-
/* If optimizing, then go ahead and split insns now. */
#ifndef STACK_REGS
if (optimize > 0)
diff --git a/gcc/function.c b/gcc/function.c
index 35840991d92..fab19ae2ee7 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1665,7 +1665,7 @@ instantiate_virtual_regs (void)
struct tree_opt_pass pass_instantiate_virtual_regs =
{
- NULL, /* name */
+ "vregs", /* name */
NULL, /* gate */
instantiate_virtual_regs, /* execute */
NULL, /* sub */
@@ -1676,7 +1676,7 @@ struct tree_opt_pass pass_instantiate_virtual_regs =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/integrate.c b/gcc/integrate.c
index ee9c1849855..9ac14a0d709 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -299,7 +299,7 @@ emit_initial_value_sets (void)
struct tree_opt_pass pass_initial_value_sets =
{
- NULL, /* name */
+ "initvals", /* name */
NULL, /* gate */
emit_initial_value_sets, /* execute */
NULL, /* sub */
@@ -310,7 +310,7 @@ struct tree_opt_pass pass_initial_value_sets =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/jump.c b/gcc/jump.c
index c278319b4d2..05780b22c7f 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -124,7 +124,7 @@ cleanup_barriers (void)
struct tree_opt_pass pass_cleanup_barriers =
{
- NULL, /* name */
+ "barriers", /* name */
NULL, /* gate */
cleanup_barriers, /* execute */
NULL, /* sub */
@@ -135,7 +135,7 @@ struct tree_opt_pass pass_cleanup_barriers =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
@@ -179,7 +179,7 @@ purge_line_number_notes (void)
struct tree_opt_pass pass_purge_lineno_notes =
{
- NULL, /* name */
+ "elnotes", /* name */
NULL, /* gate */
purge_line_number_notes, /* execute */
NULL, /* sub */
@@ -190,7 +190,7 @@ struct tree_opt_pass pass_purge_lineno_notes =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index 0e0b0cf4c88..517474a545b 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -171,7 +171,7 @@ rtl_loop_init (void)
struct tree_opt_pass pass_rtl_loop_init =
{
- "loopinit", /* name */
+ "loop2_init", /* name */
NULL, /* gate */
rtl_loop_init, /* execute */
NULL, /* sub */
@@ -215,7 +215,7 @@ rtl_loop_done (void)
struct tree_opt_pass pass_rtl_loop_done =
{
- "loopdone", /* name */
+ "loop2_done", /* name */
NULL, /* gate */
rtl_loop_done, /* execute */
NULL, /* sub */
@@ -232,17 +232,23 @@ struct tree_opt_pass pass_rtl_loop_done =
/* Loop invariant code motion. */
+static bool
+gate_rtl_move_loop_invariants (void)
+{
+ return flag_move_loop_invariants;
+}
+
static void
rtl_move_loop_invariants (void)
{
- if (current_loops && flag_move_loop_invariants)
+ if (current_loops)
move_loop_invariants (current_loops);
}
struct tree_opt_pass pass_rtl_move_loop_invariants =
{
- "loop_invariant", /* name */
- NULL, /* gate */
+ "loop2_invariant", /* name */
+ gate_rtl_move_loop_invariants, /* gate */
rtl_move_loop_invariants, /* execute */
NULL, /* sub */
NULL, /* next */
@@ -258,17 +264,23 @@ struct tree_opt_pass pass_rtl_move_loop_invariants =
/* Loop unswitching for RTL. */
+static bool
+gate_rtl_unswitch (void)
+{
+ return flag_unswitch_loops;
+}
+
static void
rtl_unswitch (void)
{
- if (current_loops && flag_unswitch_loops)
+ if (current_loops)
unswitch_loops (current_loops);
}
struct tree_opt_pass pass_rtl_unswitch =
{
- "loop_unswitch", /* name */
- NULL, /* gate */
+ "loop2_unswitch", /* name */
+ gate_rtl_unswitch, /* gate */
rtl_unswitch, /* execute */
NULL, /* sub */
NULL, /* next */
@@ -284,11 +296,16 @@ struct tree_opt_pass pass_rtl_unswitch =
/* Loop unswitching for RTL. */
+static bool
+gate_rtl_unroll_and_peel_loops (void)
+{
+ return (flag_peel_loops || flag_unroll_loops || flag_unroll_all_loops);
+}
+
static void
rtl_unroll_and_peel_loops (void)
{
- if (current_loops
- && (flag_peel_loops || flag_unroll_loops || flag_unroll_all_loops))
+ if (current_loops)
{
int flags = 0;
@@ -305,8 +322,8 @@ rtl_unroll_and_peel_loops (void)
struct tree_opt_pass pass_rtl_unroll_and_peel_loops =
{
- "loop_unroll", /* name */
- NULL, /* gate */
+ "loop2_unroll", /* name */
+ gate_rtl_unroll_and_peel_loops, /* gate */
rtl_unroll_and_peel_loops, /* execute */
NULL, /* sub */
NULL, /* next */
@@ -322,20 +339,29 @@ struct tree_opt_pass pass_rtl_unroll_and_peel_loops =
/* The doloop optimization. */
+static bool
+gate_rtl_doloop (void)
+{
+#ifdef HAVE_doloop_end
+ return (flag_branch_on_count_reg && HAVE_doloop_end);
+#else
+ return 0;
+#endif
+}
+
static void
rtl_doloop (void)
{
#ifdef HAVE_doloop_end
- if (current_loops
- && (flag_branch_on_count_reg && HAVE_doloop_end))
+ if (current_loops)
doloop_optimize_loops (current_loops);
#endif
}
struct tree_opt_pass pass_rtl_doloop =
{
- "loop_doloop", /* name */
- NULL, /* gate */
+ "loop2_doloop", /* name */
+ gate_rtl_doloop, /* gate */
rtl_doloop, /* execute */
NULL, /* sub */
NULL, /* next */
diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c
index 9e8ad62fbe7..a781cb2d743 100644
--- a/gcc/mode-switching.c
+++ b/gcc/mode-switching.c
@@ -736,7 +736,7 @@ rest_of_handle_mode_switching (void)
struct tree_opt_pass pass_mode_switching =
{
- NULL, /* name */
+ "mode-sw", /* name */
gate_mode_switching, /* gate */
rest_of_handle_mode_switching, /* execute */
NULL, /* sub */
@@ -747,6 +747,6 @@ struct tree_opt_pass pass_mode_switching =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/recog.c b/gcc/recog.c
index 8e6a62b6dd0..23012dcf1c4 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -3460,7 +3460,7 @@ rest_of_handle_split_all_insns (void)
struct tree_opt_pass pass_split_all_insns =
{
- NULL, /* name */
+ "split1", /* name */
NULL, /* gate */
rest_of_handle_split_all_insns, /* execute */
NULL, /* sub */
@@ -3471,7 +3471,7 @@ struct tree_opt_pass pass_split_all_insns =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
@@ -3489,7 +3489,7 @@ gate_do_final_split (void)
struct tree_opt_pass pass_split_for_shorten_branches =
{
- NULL, /* name */
+ "split3", /* name */
gate_do_final_split, /* gate */
split_all_insns_noflow, /* execute */
NULL, /* sub */
@@ -3500,7 +3500,7 @@ struct tree_opt_pass pass_split_for_shorten_branches =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
@@ -3525,7 +3525,7 @@ gate_handle_split_before_regstack (void)
struct tree_opt_pass pass_split_before_regstack =
{
- NULL, /* name */
+ "split2", /* name */
gate_handle_split_before_regstack, /* gate */
rest_of_handle_split_all_insns, /* execute */
NULL, /* sub */
@@ -3536,6 +3536,6 @@ struct tree_opt_pass pass_split_before_regstack =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 08cacf42bd1..e6bbc8ca65d 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -2524,7 +2524,7 @@ rest_of_handle_stack_adjustments (void)
struct tree_opt_pass pass_stack_adjustments =
{
- NULL, /* name */
+ "csa", /* name */
gate_handle_stack_adjustments, /* gate */
rest_of_handle_stack_adjustments, /* execute */
NULL, /* sub */
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c
index d160e497cdd..782982eaf51 100644
--- a/gcc/tree-optimize.c
+++ b/gcc/tree-optimize.c
@@ -258,7 +258,7 @@ execute_fixup_cfg (void)
struct tree_opt_pass pass_fixup_cfg =
{
- NULL, /* name */
+ "fixupcfg", /* name */
NULL, /* gate */
execute_fixup_cfg, /* execute */
NULL, /* sub */
@@ -269,7 +269,7 @@ struct tree_opt_pass pass_fixup_cfg =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- 0, /* todo_flags_finish */
+ TODO_dump_func, /* todo_flags_finish */
0 /* letter */
};