diff options
author | Richard Biener <rguenther@suse.de> | 2013-04-12 09:50:28 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-04-12 09:50:28 +0000 |
commit | d3afd9aacaa66fc22dfbd4943df8b05dcc3e6bee (patch) | |
tree | 2766f41a08f71d117d9d6574f06cf40113aebde0 /gcc/passes.c | |
parent | e1e3b9d3359ea668c7581f6673bdeeb59b085d24 (diff) | |
download | gcc-d3afd9aacaa66fc22dfbd4943df8b05dcc3e6bee.tar.gz |
tree-pass.h (TODO_do_not_ggc_collect): New.
2013-04-12 Richard Biener <rguenther@suse.de>
* tree-pass.h (TODO_do_not_ggc_collect): New.
* passes.c (execute_one_ipa_transform_pass): Honor
TODO_do_not_ggc_collect.
(execute_one_pass): Likewise.
Revert
2013-04-10 Richard Biener <rguenther@suse.de>
* passes.c (init_optimization_passes): Remove reload pass.
* 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.
* g++.dg/pr55604.C: Use -fdump-rtl-ira.
From-SVN: r197865
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index c9911b932f2..47dca568c3a 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1620,6 +1620,7 @@ 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; @@ -2186,7 +2187,8 @@ execute_one_ipa_transform_pass (struct cgraph_node *node, current_pass = NULL; /* Signal this is a suitable GC collection point. */ - ggc_collect (); + if (!(todo_after & TODO_do_not_ggc_collect)) + ggc_collect (); } /* For the current function, execute all ipa transforms. */ @@ -2365,7 +2367,8 @@ execute_one_pass (struct opt_pass *pass) current_pass = NULL; /* Signal this is a suitable GC collection point. */ - ggc_collect (); + if (!((todo_after | pass->todo_flags_finish) & TODO_do_not_ggc_collect)) + ggc_collect (); return true; } |