passes.c (execute_todo): Do not call ggc_collect conditional here.
authorRichard Biener <rguenther@suse.de>
Wed, 10 Apr 2013 11:33:31 +0000 (11:33 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 10 Apr 2013 11:33:31 +0000 (11:33 +0000)
2013-04-10  Richard Biener  <rguenther@suse.de>

* passes.c (execute_todo): Do not call ggc_collect conditional here.
(execute_one_ipa_transform_pass): But unconditionally here.
(execute_one_pass): And here.
(init_optimization_passes): Remove reload pass.
* tree-pass.h (TODO_ggc_collect): Remove.
(pass_reload): Likewise.
* ira.c (do_reload): Merge into ...
(ira): ... this.
(rest_of_handle_reload): Remove.
(pass_reload): Likewise.
* config/i386/i386.c (ix86_option_override): Refer to ira instead
of reload for vzeroupper pass placement.
* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
and todo_flags_finish of all passes.

* g++.dg/pr55604.C: Use -fdump-rtl-ira.

From-SVN: r197671

58 files changed:
gcc/ChangeLog
gcc/bt-load.c
gcc/cfgcleanup.c
gcc/cfgexpand.c
gcc/combine-stack-adj.c
gcc/combine.c
gcc/compare-elim.c
gcc/config/i386/i386.c
gcc/cprop.c
gcc/cse.c
gcc/dce.c
gcc/dse.c
gcc/final.c
gcc/function.c
gcc/gcse.c
gcc/ifcvt.c
gcc/ipa-cp.c
gcc/ipa-inline.c
gcc/ipa.c
gcc/ira.c
gcc/loop-init.c
gcc/lower-subreg.c
gcc/modulo-sched.c
gcc/passes.c
gcc/postreload-gcse.c
gcc/predict.c
gcc/ree.c
gcc/reg-stack.c
gcc/regmove.c
gcc/reorg.c
gcc/sched-rgn.c
gcc/store-motion.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr55604.C
gcc/tree-cfgcleanup.c
gcc/tree-complex.c
gcc/tree-emutls.c
gcc/tree-loop-distribution.c
gcc/tree-nrv.c
gcc/tree-pass.h
gcc/tree-sra.c
gcc/tree-ssa-ccp.c
gcc/tree-ssa-copy.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-dse.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa-ifcombine.c
gcc/tree-ssa-loop.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-phiprop.c
gcc/tree-ssa-pre.c
gcc/tree-ssa-reassoc.c
gcc/tree-ssa-sink.c
gcc/tree-ssa-strlen.c
gcc/tree-switch-conversion.c
gcc/tree-vectorizer.c
gcc/tree-vrp.c
gcc/tree.c

index 98feb2c23141592731d9ef60afdbf03747cc18b3..2a95de18852d63d028bfb904477f8addbf236fad 100644 (file)
@@ -1,3 +1,20 @@
+2013-04-10  Richard Biener  <rguenther@suse.de>
+
+       * passes.c (execute_todo): Do not call ggc_collect conditional here.
+       (execute_one_ipa_transform_pass): But unconditionally here.
+       (execute_one_pass): And here.
+       (init_optimization_passes): Remove reload pass.
+       * tree-pass.h (TODO_ggc_collect): Remove.
+       (pass_reload): Likewise.
+       * ira.c (do_reload): Merge into ...
+       (ira): ... this.
+       (rest_of_handle_reload): Remove.
+       (pass_reload): Likewise.
+       * config/i386/i386.c (ix86_option_override): Refer to ira instead
+       of reload for vzeroupper pass placement.
+       * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
+       and todo_flags_finish of all passes.
+
 2013-04-10  Richard Biener  <rguenther@suse.de>
 
        * tree-vectorizer.h (struct _slp_oprnd_info): Remove
index 471ae42e4c697f0a1eb8e3ad5ab62e19c2884185..9ca1bd98dcd64e2f2c5d70595a156dbc3f770f26 100644 (file)
@@ -1520,8 +1520,7 @@ struct rtl_opt_pass pass_branch_target_load_optimize1 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_verify_rtl_sharing |
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  TODO_verify_rtl_sharing,              /* todo_flags_finish */
  }
 };
 
@@ -1570,6 +1569,6 @@ struct rtl_opt_pass pass_branch_target_load_optimize2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  0,                                    /* todo_flags_finish */
  }
 };
index 2fcefc60b23403cd43394e960247fce6fd6e0137..7764c6c9d2dfc0c5baa4c9df22dc8bfa872f187e 100644 (file)
@@ -3055,7 +3055,7 @@ struct rtl_opt_pass pass_jump =
   0,                                   /* properties_required */
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
-  TODO_ggc_collect,                    /* todo_flags_start */
+  0,                                   /* todo_flags_start */
   TODO_verify_rtl_sharing,             /* todo_flags_finish */
  }
 };
@@ -3082,7 +3082,7 @@ struct rtl_opt_pass pass_jump2 =
   0,                                   /* properties_required */
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
-  TODO_ggc_collect,                    /* todo_flags_start */
+  0,                                   /* todo_flags_start */
   TODO_verify_rtl_sharing,             /* todo_flags_finish */
  }
 };
index 771b019c65b12303c45114377cae1d2330aae591..a651d8c5868b2a9b762ff1acab3125dc00acafb3 100644 (file)
@@ -4864,6 +4864,6 @@ struct rtl_opt_pass pass_expand =
   PROP_ssa | PROP_trees,               /* properties_destroyed */
   TODO_verify_ssa | TODO_verify_flow
     | TODO_verify_stmts,               /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
index 0a4d8a51d1db3a39472dfae08f67d80a3395c09a..7392b92b3f5fec76bd0c70fdabb2330d2fbdc8d2 100644 (file)
@@ -659,7 +659,6 @@ struct rtl_opt_pass pass_stack_adjustments =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 667b7b43c70ba1c7a53eb7f251f5a721cfaec582..6d58b19dbe924649eebc8d4038c931eff804debf 100644 (file)
@@ -13818,7 +13818,6 @@ struct rtl_opt_pass pass_combine =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect,                     /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 81b0c2d30502591fa0f11f4431c37149139624b2..367cd8ea8dce713e6684eff28ca2508ac70b9d71 100644 (file)
@@ -669,7 +669,6 @@ struct rtl_opt_pass pass_compare_elim_after_reload =
   0,                                   /* todo_flags_start */
   TODO_df_finish
   | TODO_df_verify
-  | TODO_verify_rtl_sharing
-  | TODO_ggc_collect                   /* todo_flags_finish */
+  | TODO_verify_rtl_sharing            /* todo_flags_finish */
  }
 };
index 9f5a24f6c006901f8fbafa082164994ad0349967..21ebd0faee54193015a2dc005b1c78be9595eacd 100644 (file)
@@ -3930,7 +3930,7 @@ static void
 ix86_option_override (void)
 {
   static struct register_pass_info insert_vzeroupper_info
-    = { &pass_insert_vzeroupper.pass, "reload",
+    = { &pass_insert_vzeroupper.pass, "ira",
        1, PASS_POS_INSERT_AFTER
       };
 
index 855a1d2873d98679e6398a911ca9a6194aed2de3..6a6b5f1fd10b108060626be41d192006d9242e4a 100644 (file)
@@ -1930,6 +1930,6 @@ struct rtl_opt_pass pass_rtl_cprop =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
index b200fef4dfbac1dc9fd0ec0a2f46c736b3f85052..f2c8f635d39d63e4b4e638a3d2ddfef13ca3435c 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7466,8 +7466,7 @@ struct rtl_opt_pass pass_cse =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect |
-  TODO_verify_flow,                     /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
 
@@ -7529,7 +7528,6 @@ struct rtl_opt_pass pass_cse2 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect |
   TODO_verify_flow                      /* todo_flags_finish */
  }
 };
@@ -7590,7 +7588,6 @@ struct rtl_opt_pass pass_cse_after_global_opts =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect |
   TODO_verify_flow                      /* todo_flags_finish */
  }
 };
index b7ecc3046a16bc4252408a59a72d9e73853d1cdf..64ed81e35e86503192e9cbeaebb4c23074c6b5ed 100644 (file)
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -802,8 +802,7 @@ struct rtl_opt_pass pass_ud_rtl_dce =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                     /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
 
@@ -1218,7 +1217,6 @@ struct rtl_opt_pass pass_fast_rtl_dce =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 629d2387923b765d2423d56d8f0a56ba2fbc7873..d643cb0b4fa8508b1ef19058d17a37de000f9c06 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -3745,8 +3745,7 @@ struct rtl_opt_pass pass_rtl_dse1 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
 
@@ -3766,7 +3765,6 @@ struct rtl_opt_pass pass_rtl_dse2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 714137c712e7f24799ecc3f63d5fade3245b1b9f..f6974f4be27af755dce305c960341e5045b6a4f5 100644 (file)
@@ -811,8 +811,7 @@ struct rtl_opt_pass pass_compute_alignments =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_verify_rtl_sharing
-  | TODO_ggc_collect                    /* todo_flags_finish */
+  TODO_verify_rtl_sharing               /* todo_flags_finish */
  }
 };
 
@@ -4396,7 +4395,7 @@ struct rtl_opt_pass pass_final =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
 
index 7e55c94cf75e7f87f4fd0b1ad90465e404c1817f..36c874fd3722a0c4279358fa6fa5d2cb6868843f 100644 (file)
@@ -6999,9 +6999,8 @@ struct rtl_opt_pass pass_thread_prologue_and_epilogue =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   TODO_verify_flow,                     /* todo_flags_start */
-  TODO_df_verify |
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_verify | TODO_df_finish
+  | TODO_verify_rtl_sharing             /* todo_flags_finish */
  }
 };
 \f
index f421a3a7a0764069d4a563f993cbfd40eba12647..e1daf18f8b0ec486a985d52a85ebd2595d9ad193 100644 (file)
@@ -4148,7 +4148,7 @@ struct rtl_opt_pass pass_rtl_pre =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
 
@@ -4169,7 +4169,7 @@ struct rtl_opt_pass pass_rtl_hoist =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
 
index faea882cefad179e4a6b0b32a57138e444c8fab2..f1309cfc449d6d00c4dac4f73afc6e7cbd9e19f5 100644 (file)
@@ -4514,8 +4514,7 @@ struct rtl_opt_pass pass_if_after_combine =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
 
@@ -4551,7 +4550,6 @@ struct rtl_opt_pass pass_if_after_reload =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 0ca25d286f407751d06bdf2dd9c107d36add2df0..27aed3c368fef01ecb127a1a5ca822819d7ca81b 100644 (file)
@@ -3660,7 +3660,7 @@ struct ipa_opt_pass_d pass_ipa_cp =
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
   TODO_dump_symtab |
-  TODO_remove_functions | TODO_ggc_collect /* todo_flags_finish */
+  TODO_remove_functions         /* todo_flags_finish */
  },
  ipcp_generate_summary,                        /* generate_summary */
  ipcp_write_summary,                   /* write_summary */
index 171d6a2266c560bdf562a4b42dd8db39da35d8b3..964d1f9d9de0aa618879c81ddeca633e75be5874 100644 (file)
@@ -2123,7 +2123,7 @@ struct ipa_opt_pass_d pass_ipa_inline =
   0,                                   /* properties_destroyed */
   TODO_remove_functions,               /* todo_flags_finish */
   TODO_dump_symtab 
-  | TODO_remove_functions | TODO_ggc_collect   /* todo_flags_finish */
+  | TODO_remove_functions              /* todo_flags_finish */
  },
  inline_generate_summary,              /* generate_summary */
  inline_write_summary,                 /* write_summary */
index f53d9db29b2b13ebb721618a1a5f670b31dde750..cb7b6b56b8e184a751a56b24a57f9f097931f228 100644 (file)
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -914,8 +914,7 @@ struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_remove_functions | TODO_dump_symtab
-  | TODO_ggc_collect                   /* todo_flags_finish */
+  TODO_remove_functions | TODO_dump_symtab /* todo_flags_finish */
  }
 };
 
@@ -944,7 +943,7 @@ struct simple_ipa_opt_pass pass_ipa_free_inline_summary =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
 
@@ -983,8 +982,7 @@ struct ipa_opt_pass_d pass_ipa_whole_program_visibility =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_remove_functions | TODO_dump_symtab
-  | TODO_ggc_collect                   /* todo_flags_finish */
+  TODO_remove_functions | TODO_dump_symtab /* todo_flags_finish */
  },
  NULL,                                 /* generate_summary */
  NULL,                                 /* write_summary */
index 03b336831fad5ac8f9fd157ba5f07a51f270b9bc..edfc974fad603f02b47182685de45741b5d4b96c 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -4359,6 +4359,8 @@ ira (FILE *f)
   int rebuild_p;
   bool saved_flag_caller_saves = flag_caller_saves;
   enum ira_region saved_flag_ira_region = flag_ira_region;
+  basic_block bb;
+  bool need_dce;
 
   ira_conflicts_p = optimize > 0;
 
@@ -4588,13 +4590,6 @@ ira (FILE *f)
       flag_caller_saves = saved_flag_caller_saves;
       flag_ira_region = saved_flag_ira_region;
     }
-}
-
-static void
-do_reload (void)
-{
-  basic_block bb;
-  bool need_dce;
 
   if (flag_ira_verbose < 10)
     ira_dump_file = dump_file;
@@ -4634,8 +4629,6 @@ do_reload (void)
 
   timevar_pop (TV_RELOAD);
 
-  timevar_push (TV_IRA);
-
   if (ira_conflicts_p && ! ira_use_lra_p)
     {
       ira_free (ira_spilled_reg_stack_slots);
@@ -4693,8 +4686,6 @@ do_reload (void)
 
   if (need_dce && optimize)
     run_fast_dce ();
-
-  timevar_pop (TV_IRA);
 }
 \f
 /* Run the integrated register allocator.  */
@@ -4721,33 +4712,6 @@ struct rtl_opt_pass pass_ira =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  0,                                    /* todo_flags_finish */
- }
-};
-
-static unsigned int
-rest_of_handle_reload (void)
-{
-  do_reload ();
-  return 0;
-}
-
-struct rtl_opt_pass pass_reload =
-{
- {
-  RTL_PASS,
-  "reload",                             /* name */
-  OPTGROUP_NONE,                        /* optinfo_flags */
-  NULL,                                 /* gate */
-  rest_of_handle_reload,               /* execute */
-  NULL,                                 /* sub */
-  NULL,                                 /* next */
-  0,                                    /* static_pass_number */
-  TV_RELOAD,                           /* tv_id */
-  0,                                    /* properties_required */
-  0,                                    /* properties_provided */
-  0,                                    /* properties_destroyed */
-  0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
index f75493817bb6275ff5f2246a2d33db614110ab34..92d621e273c7564ee85c2d2e169050900b981b17 100644 (file)
@@ -318,7 +318,7 @@ struct rtl_opt_pass pass_loop2 =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
 
index 05927e13b0834c0559d76473414bbfb1a6a9ec94..5b5b03fb0bd5ed0fee6b4a0af3ac9576a88b207b 100644 (file)
@@ -1699,7 +1699,6 @@ struct rtl_opt_pass pass_lower_subreg =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect |
   TODO_verify_flow                      /* todo_flags_finish */
  }
 };
@@ -1721,7 +1720,6 @@ struct rtl_opt_pass pass_lower_subreg2 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect |
   TODO_verify_flow                      /* todo_flags_finish */
  }
 };
index 1273b2b701c5d4d647d1b98d02b588cf5b8d8136..6ce79a96f6edc5f3b38c094f9bd2b74df00d550d 100644 (file)
@@ -3369,7 +3369,6 @@ struct rtl_opt_pass pass_sms =
   0,                                    /* todo_flags_start */
   TODO_df_finish
     | TODO_verify_flow
-    | TODO_verify_rtl_sharing
-    | TODO_ggc_collect                  /* todo_flags_finish */
+    | TODO_verify_rtl_sharing           /* todo_flags_finish */
  }
 };
index a47e092ea23be234c5b4d3018cb579f21873c1b1..c9911b932f2dc499dd53a473f335f95c324065d2 100644 (file)
@@ -406,7 +406,7 @@ static struct rtl_opt_pass pass_rest_of_compilation =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
 
@@ -432,7 +432,7 @@ static struct rtl_opt_pass pass_postreload =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */
+  TODO_verify_rtl_sharing               /* todo_flags_finish */
  }
 };
 
@@ -1620,7 +1620,6 @@ init_optimization_passes (void)
       NEXT_PASS (pass_sms);
       NEXT_PASS (pass_sched);
       NEXT_PASS (pass_ira);
-      NEXT_PASS (pass_reload);
       NEXT_PASS (pass_postreload);
        {
          struct opt_pass **p = &pass_postreload.pass.sub;
@@ -2014,9 +2013,6 @@ execute_todo (unsigned int flags)
       fflush (dump_file);
     }
 
-  if (flags & TODO_ggc_collect)
-    ggc_collect ();
-
   /* Now that the dumping has been done, we can get rid of the optional
      df problems.  */
   if (flags & TODO_df_finish)
@@ -2188,6 +2184,9 @@ execute_one_ipa_transform_pass (struct cgraph_node *node,
   pass_fini_dump_file (pass);
 
   current_pass = NULL;
+
+  /* Signal this is a suitable GC collection point.  */
+  ggc_collect ();
 }
 
 /* For the current function, execute all ipa transforms. */
@@ -2365,6 +2364,9 @@ execute_one_pass (struct opt_pass *pass)
 
   current_pass = NULL;
 
+  /* Signal this is a suitable GC collection point.  */
+  ggc_collect ();
+
   return true;
 }
 
index 1b94b5c7d73ea2702f55440445c72b1d21b845d7..b9befe0e9e897886359deaa80c3a4c228f3573f3 100644 (file)
@@ -1339,6 +1339,6 @@ struct rtl_opt_pass pass_gcse2 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_verify_rtl_sharing
-  | TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
+  | TODO_verify_flow                    /* todo_flags_finish */
  }
 };
index 1871976d99b5fb2099d9637be2cd4697bd067391..91f66a8dc2abbb46c22e4f37292e7294a70fdd09 100644 (file)
@@ -2916,7 +2916,7 @@ struct gimple_opt_pass pass_profile =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect | TODO_verify_ssa                   /* todo_flags_finish */
+  TODO_verify_ssa                      /* todo_flags_finish */
  }
 };
 
@@ -2936,7 +2936,7 @@ struct gimple_opt_pass pass_strip_predict_hints =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect | TODO_verify_ssa                   /* todo_flags_finish */
+  TODO_verify_ssa                      /* todo_flags_finish */
  }
 };
 
index c60921239a7ca42cb1faccfc7dbe6627bb032fa6..c0d43c8f72aec5fc677bb4985a5df0c19bc6453e 100644 (file)
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -957,7 +957,6 @@ struct rtl_opt_pass pass_ree =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish
-    | TODO_ggc_collect
     | TODO_verify_rtl_sharing,          /* todo_flags_finish */
  }
 };
index d6a39e14aa73ccec1b553680328f1617b4a4b99e..28127878987e443b9e2713ae2548fa6c69fbb3de 100644 (file)
@@ -3344,7 +3344,6 @@ struct rtl_opt_pass pass_stack_regs_run =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index 3d25fe07bada3abea4d7f4c788084a67fe00995c..1ce8a7ed285e10c09faa01262115cd595d2f9b5a 100644 (file)
@@ -1377,7 +1377,6 @@ struct rtl_opt_pass pass_regmove =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
  }
 };
index f89598276b16d586eebc4fa29fd3755de6bc5d85..d37d1b6fba6d8d8bed47e7a160788fcd4c058773 100644 (file)
@@ -3886,7 +3886,7 @@ struct rtl_opt_pass pass_delay_slots =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
 
@@ -3921,6 +3921,6 @@ struct rtl_opt_pass pass_machine_reorg =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect                      /* todo_flags_finish */
+  0                                     /* todo_flags_finish */
  }
 };
index 02a6705afc47d903bc97c4b529eb071c6e85c057..6eb00e93adc1fb94c6f5805aa2d11c9806afad61 100644 (file)
@@ -3630,8 +3630,7 @@ struct rtl_opt_pass pass_sched =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
 
@@ -3652,7 +3651,6 @@ struct rtl_opt_pass pass_sched2 =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow |
-  TODO_ggc_collect                      /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
index 2e57d32422c612f6d355c6378089c8f8c3d19d81..6fc072c38e664d9d08e83e8f86a4170c3fbcf1bd 100644 (file)
@@ -1249,6 +1249,6 @@ struct rtl_opt_pass pass_rtl_store_motion =
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_df_finish | TODO_verify_rtl_sharing |
-  TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
+  TODO_verify_flow                      /* todo_flags_finish */
  }
 };
index debc2aba16bd81238a81d62b81a6e80bd1cdc8a7..8bc42b41d951027c2012ea5e5c72a00d1c82bae5 100644 (file)
@@ -1,3 +1,7 @@
+2013-04-10  Richard Biener  <rguenther@suse.de>
+
+       * g++.dg/pr55604.C: Use -fdump-rtl-ira.
+
 2013-04-10  Richard Biener  <rguenther@suse.de>
 
        * gcc.dg/vect/slp-39.c: New testcase.
index 135ae4d5e557ab0d305d91395eb5df1238dc251c..b2e7af0ebe35b7418311ef891115c258916dc927 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O -fdump-rtl-reload" } */
+/* { dg-options "-O -fdump-rtl-ira" } */
 
 main ()
 {
@@ -8,4 +8,4 @@ main ()
   __builtin_printf ("%d %s\n", t, s);
 }
 
-/* { dg-final { cleanup-rtl-dump "reload" } } */
+/* { dg-final { cleanup-rtl-dump "ira" } } */
index 064d994ad3da27ee72b03e39363d98b68c7b7495..b355a8607d51f562b83ab5de77e62269a66f7d4c 100644 (file)
@@ -992,7 +992,6 @@ struct gimple_opt_pass pass_merge_phi =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect             /* todo_flags_finish */
-  | TODO_verify_ssa
+  TODO_verify_ssa               /* todo_flags_finish */
  }
 };
index f8dbe0a8519d425453818bcb1f34009d07ebb0bf..760083b64ca6fc4f42053d27c109b863f065cc52 100644 (file)
@@ -1648,9 +1648,8 @@ struct gimple_opt_pass pass_lower_complex =
   PROP_gimple_lcx,                     /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-    TODO_ggc_collect
-    | TODO_update_ssa
-    | TODO_verify_stmts                        /* todo_flags_finish */
+  TODO_update_ssa
+  | TODO_verify_stmts                  /* todo_flags_finish */
  }
 };
 
@@ -1679,8 +1678,7 @@ struct gimple_opt_pass pass_lower_complex_O0 =
   PROP_gimple_lcx,                     /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_update_ssa
-    | TODO_verify_stmts                        /* todo_flags_finish */
+  TODO_update_ssa
+  | TODO_verify_stmts                  /* todo_flags_finish */
  }
 };
index d7d7360a9f9b9d97438867f1cdeea29bd2d8f174..fc75b3144e394c998e958db7b7f3e44571ba5cdf 100644 (file)
@@ -798,7 +798,7 @@ ipa_lower_emutls (void)
   access_vars.release ();
   free_varpool_node_set (tls_vars);
 
-  return TODO_ggc_collect | TODO_verify_all;
+  return TODO_verify_all;
 }
 
 /* If the target supports TLS natively, we need do nothing here.  */
index 668ceec1743473d5a3a9c36eeaf1a9cb0a8f18e3..5c2c7db44004b888d7c2dcea4b5b76a89babe0ab 100644 (file)
@@ -1605,7 +1605,6 @@ struct gimple_opt_pass pass_loop_distribution =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-  | TODO_verify_ssa             /* todo_flags_finish */
+  TODO_verify_ssa               /* todo_flags_finish */
  }
 };
index 58e7e80c808245f6f450863c73ed94996df4d9c0..51bc7cd90cd3edd4cf7bba8895f11bb99df0132a 100644 (file)
@@ -285,7 +285,7 @@ struct gimple_opt_pass pass_nrv =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
 
index 0942ad7793f479f383544e6c219bec82f4f0bbce..a6bb4faf081e23e02b904e500cf8fb28e5dcd7d3 100644 (file)
@@ -154,7 +154,6 @@ struct simple_ipa_opt_pass
   (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
 
 /* To-do flags.  */
-#define TODO_ggc_collect               (1 << 1)
 #define TODO_verify_ssa                        (1 << 2)
 #define TODO_verify_flow               (1 << 3)
 #define TODO_verify_stmts              (1 << 4)
@@ -446,7 +445,6 @@ extern struct rtl_opt_pass pass_mode_switching;
 extern struct rtl_opt_pass pass_sms;
 extern struct rtl_opt_pass pass_sched;
 extern struct rtl_opt_pass pass_ira;
-extern struct rtl_opt_pass pass_reload;
 extern struct rtl_opt_pass pass_clean_state;
 extern struct rtl_opt_pass pass_branch_prob;
 extern struct rtl_opt_pass pass_value_profile_transformations;
index 78efa255b1d88bf4dfe7d10e922c6c1824478898..a148a60001702a18a9f90ef36ba6de492d29f693 100644 (file)
@@ -3450,7 +3450,6 @@ struct gimple_opt_pass pass_sra_early =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_update_ssa
-  | TODO_ggc_collect
   | TODO_verify_ssa                    /* todo_flags_finish */
  }
 };
@@ -3472,7 +3471,6 @@ struct gimple_opt_pass pass_sra =
   0,                                   /* properties_destroyed */
   TODO_update_address_taken,           /* todo_flags_start */
   TODO_update_ssa
-  | TODO_ggc_collect
   | TODO_verify_ssa                    /* todo_flags_finish */
  }
 };
index f298b27ad9713cfab3aadbf4068df5e4df9f83c1..1bc4c2fb7b5d7b223977b87d8bcf1917ad5d09fa 100644 (file)
@@ -2139,7 +2139,7 @@ struct gimple_opt_pass pass_ccp =
   0,                                   /* todo_flags_start */
   TODO_verify_ssa
   | TODO_update_address_taken
-  | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */
+  | TODO_verify_stmts                  /* todo_flags_finish */
  }
 };
 
index 1514745dda5a9c09f99747a6c80105bd6448a994..d16756cb79a0d6f14122bcdb638b23e795a1108a 100644 (file)
@@ -844,7 +844,6 @@ struct gimple_opt_pass pass_copy_prop =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_cleanup_cfg
-    | TODO_ggc_collect
     | TODO_verify_ssa
     | TODO_update_ssa                  /* todo_flags_finish */
  }
index d98a646aa4ffbc9d69a5baa393644798a722a9c5..d650d95f23e4f8259b9cbbadbe10b5e5da04f4d1 100644 (file)
@@ -3076,7 +3076,6 @@ struct gimple_opt_pass pass_phi_only_cprop =
   0,                                   /* properties_destroyed */
   0,                                    /* todo_flags_start */
   TODO_cleanup_cfg
-    | TODO_ggc_collect
     | TODO_verify_ssa
     | TODO_verify_stmts
     | TODO_update_ssa                  /* todo_flags_finish */
index e0c3b745b1e9f636885ad324c3d241ec28c1f9e9..ad99ea9d5d403fde3f413351c8a075ac92c3802b 100644 (file)
@@ -375,7 +375,6 @@ struct gimple_opt_pass pass_dse =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_verify_ssa          /* todo_flags_finish */
+  TODO_verify_ssa              /* todo_flags_finish */
  }
 };
index 26b076146d3aa0271d6fd640a0653278fe5e2835..ac930c68755ad26b459e6b744c7a064ed733c2ff 100644 (file)
@@ -3152,8 +3152,7 @@ struct gimple_opt_pass pass_forwprop =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-  | TODO_update_ssa
+  TODO_update_ssa
   | TODO_verify_ssa            /* todo_flags_finish */
  }
 };
index cc06ca13b1e280635374895af7aa51e9fecd637a..9598eb81a45481c1d14faa1e3e0852273cfa996c 100644 (file)
@@ -664,8 +664,7 @@ struct gimple_opt_pass pass_tree_ifcombine =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-  | TODO_update_ssa
+  TODO_update_ssa
   | TODO_verify_ssa            /* todo_flags_finish */
  }
 };
index fdfb9e7126241348519faaf7852d144fd2c420e7..fef6883a13de1db0e40e4e4a7081e02a7b5ab416 100644 (file)
@@ -56,8 +56,8 @@ struct gimple_opt_pass pass_tree_loop =
   PROP_cfg,                            /* properties_required */
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
-  TODO_ggc_collect,                    /* todo_flags_start */
-  TODO_verify_ssa | TODO_ggc_collect   /* todo_flags_finish */
+  0,                                   /* todo_flags_start */
+  TODO_verify_ssa                      /* todo_flags_finish */
  }
 };
 
@@ -170,7 +170,7 @@ struct gimple_opt_pass pass_tree_unswitch =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
 
@@ -245,7 +245,7 @@ struct gimple_opt_pass pass_vectorize =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
 
@@ -491,7 +491,7 @@ struct gimple_opt_pass pass_complete_unroll =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };
 
@@ -538,8 +538,7 @@ struct gimple_opt_pass pass_complete_unrolli =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_verify_flow
-    | TODO_ggc_collect                         /* todo_flags_finish */
+  TODO_verify_flow                     /* todo_flags_finish */
  }
 };
 
@@ -653,7 +652,7 @@ struct gimple_opt_pass pass_iv_optimize =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_update_ssa | TODO_ggc_collect   /* todo_flags_finish */
+  TODO_update_ssa                      /* todo_flags_finish */
  }
 };
 
index 300016f7a0b14c7aa5cb0ec549c27064b3a19d08..91df10714e524ca0163883ba54385e75fd7ee2d5 100644 (file)
@@ -2013,8 +2013,7 @@ struct gimple_opt_pass pass_phiopt =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_verify_ssa
+  TODO_verify_ssa
     | TODO_verify_flow
     | TODO_verify_stmts                        /* todo_flags_finish */
  }
@@ -2042,8 +2041,7 @@ struct gimple_opt_pass pass_cselim =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_verify_ssa
+  TODO_verify_ssa
     | TODO_verify_flow
     | TODO_verify_stmts                        /* todo_flags_finish */
  }
index 4da18148782d30da48bb72c3e899a77665f1b619..6555ae344b70e7096daee167e7f5333e8d8e9115 100644 (file)
@@ -420,8 +420,7 @@ struct gimple_opt_pass pass_phiprop =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-  | TODO_update_ssa
+  TODO_update_ssa
   | TODO_verify_ssa            /* todo_flags_finish */
  }
 };
index 10c8091758e5be2d8f9c3ba18f416e61b5de2797..798409afa82f7c6837c7e6374dc3eca4fcdbc7dd 100644 (file)
@@ -4788,7 +4788,7 @@ struct gimple_opt_pass pass_pre =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   TODO_rebuild_alias,                  /* todo_flags_start */
-  TODO_ggc_collect | TODO_verify_ssa   /* todo_flags_finish */
+  TODO_verify_ssa                      /* todo_flags_finish */
  }
 };
 
@@ -4840,6 +4840,6 @@ struct gimple_opt_pass pass_fre =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */
+  TODO_verify_ssa                      /* todo_flags_finish */
  }
 };
index 27161cd18600dfa6818d9a2abe03a02b141737d4..534c51cdb96e00fa790343638f1fb7dda3fe9e35 100644 (file)
@@ -4293,7 +4293,6 @@ struct gimple_opt_pass pass_reassoc =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_verify_ssa
-    | TODO_verify_flow
-    | TODO_ggc_collect                 /* todo_flags_finish */
+    | TODO_verify_flow                 /* todo_flags_finish */
  }
 };
index 48dae0b9f9953aa4803a3971259aa3fbc649d947..0d9029bc66e9686c1a212b6fda24b3f264352df9 100644 (file)
@@ -597,7 +597,6 @@ struct gimple_opt_pass pass_sink_code =
   0,                                   /* todo_flags_start */
   TODO_update_ssa
     | TODO_verify_ssa
-    | TODO_verify_flow
-    | TODO_ggc_collect                 /* todo_flags_finish */
+    | TODO_verify_flow                 /* todo_flags_finish */
  }
 };
index c83246109142fec7447fdd1f26cffa8f6cdecf3f..9c724dc43cb8ffab63bb40e5f661b0b5ad8b727d 100644 (file)
@@ -2020,7 +2020,6 @@ struct gimple_opt_pass pass_strlen =
   0,                           /* properties_provided */
   0,                           /* properties_destroyed */
   0,                           /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_verify_ssa          /* todo_flags_finish */
+  TODO_verify_ssa              /* todo_flags_finish */
  }
 };
index b7d4b249553fcdbd39505e0ca13b175030013481..3fffdf7e6cd77137a218fa21b554a4d76b8e8959 100644 (file)
@@ -1477,7 +1477,7 @@ struct gimple_opt_pass pass_convert_switch =
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_update_ssa 
-  | TODO_ggc_collect | TODO_verify_ssa
+  | TODO_verify_ssa
   | TODO_verify_stmts
   | TODO_verify_flow                   /* todo_flags_finish */
  }
index 9d461997516cbf0736f87a98c27e2398dcf12c46..0227d08c9f0928bc857952a7f5f34933959ccce1 100644 (file)
@@ -214,8 +214,7 @@ struct gimple_opt_pass pass_slp_vectorize =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_ggc_collect
-    | TODO_verify_ssa
+  TODO_verify_ssa
     | TODO_update_ssa
     | TODO_verify_stmts                 /* todo_flags_finish */
  }
index e1b88a9e138249dff6ce8d572c0ec453a01f96c1..be1a3808cf59b74483297d042c8304b06d2c97cd 100644 (file)
@@ -9408,7 +9408,6 @@ struct gimple_opt_pass pass_vrp =
   TODO_cleanup_cfg
     | TODO_update_ssa
     | TODO_verify_ssa
-    | TODO_verify_flow
-    | TODO_ggc_collect                 /* todo_flags_finish */
+    | TODO_verify_flow                 /* todo_flags_finish */
  }
 };
index 078caae9b9e48d5fa60756eee1a89fe7c36bf89d..ba3dcddaf42c3627fee9d30860b09b7d09d82b50 100644 (file)
@@ -5299,7 +5299,7 @@ struct simple_ipa_opt_pass pass_ipa_free_lang_data =
   0,                                   /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
-  TODO_ggc_collect                     /* todo_flags_finish */
+  0                                    /* todo_flags_finish */
  }
 };