OSDN Git Service

2005-08-09 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Aug 2005 09:02:48 +0000 (09:02 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Aug 2005 09:02:48 +0000 (09:02 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102945 138bc75d-0d04-0410-961f-82ee72b054a4

15 files changed:
gcc/ChangeLog
gcc/bb-reorder.c
gcc/cfglayout.c
gcc/emit-rtl.c
gcc/except.c
gcc/final.c
gcc/flow.c
gcc/function.c
gcc/integrate.c
gcc/jump.c
gcc/loop-init.c
gcc/mode-switching.c
gcc/recog.c
gcc/regmove.c
gcc/tree-optimize.c

index e8246df..1289a21 100644 (file)
@@ -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
index 76faeda..2dca3e3 100644 (file)
@@ -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 */
 };
 
index 2a8a122..c63c6f7 100644 (file)
@@ -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 */
 };
 
index 01a224f..18c71b1 100644 (file)
@@ -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 */ 
 };
 
index 4578ae9..df91a1b 100644 (file)
@@ -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 */
 };
 
index e3b62a1..e1a4c18 100644 (file)
@@ -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 */
 };
 
index 2ebcdda..79b26d6 100644 (file)
@@ -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)
index 3584099..fab19ae 100644 (file)
@@ -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 */
 };
 
index ee9c184..9ac14a0 100644 (file)
@@ -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 */
 };
 
index c278319..05780b2 100644 (file)
@@ -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 */
 };
 
index 0e0b0cf..517474a 100644 (file)
@@ -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 =
 
 \f
 /* 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 =
 
 \f
 /* 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 =
 
 \f
 /* 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 =
 
 \f
 /* 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 */
index 9e8ad62..a781cb2 100644 (file)
@@ -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 */
 };
index 8e6a62b..23012dc 100644 (file)
@@ -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 */
 };
index 08cacf4..e6bbc8c 100644 (file)
@@ -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 */
index d160e49..782982e 100644 (file)
@@ -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 */
 };