summaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-10 11:33:31 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2013-04-10 11:33:31 +0000
commitef3baff5fbb72989650869080e1ff6ef7641ab21 (patch)
tree343ea98fe2010bf89962a5e0aee3ab18b4410a4a /gcc/passes.c
parent3533e58d2af4447366c24fcf1850274e2a010be9 (diff)
downloadgcc-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.c14
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;
}