diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-10 11:33:31 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-04-10 11:33:31 +0000 |
commit | ef3baff5fbb72989650869080e1ff6ef7641ab21 (patch) | |
tree | 343ea98fe2010bf89962a5e0aee3ab18b4410a4a /gcc/passes.c | |
parent | 3533e58d2af4447366c24fcf1850274e2a010be9 (diff) | |
download | gcc-ef3baff5fbb72989650869080e1ff6ef7641ab21.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197671 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index a47e092ea23..c9911b932f2 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -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; } |