summaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-01-10 14:33:04 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-01-10 14:33:04 +0000
commita15d5ede1b745b109884a8f94950aefc66836037 (patch)
treebbc73f1eb46e75ef826904a55147a08ff0e52674 /gcc/passes.c
parent759a30b2ba2287a83e867f8fd905e51b498ce220 (diff)
downloadgcc-a15d5ede1b745b109884a8f94950aefc66836037.tar.gz
PR tree-optimization/47234
* tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. (pass_feedback_split_functions): Declare. * passes.c (init_optimization_passes): Add ipa-split as subpass of tree-profile. * ipa-split.c (gate_split_functions): Update comments; disable split-functions for profile_arc_flag and branch_probabilities. (gate_feedback_split_functions): New function. (execute_feedback_split_functions): New function. (pass_feedback_split_functions): New global var. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168632 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index 4be61a9455e..804ac9f2a60 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -785,6 +785,10 @@ init_optimization_passes (void)
NEXT_PASS (pass_inline_parameters);
}
NEXT_PASS (pass_ipa_tree_profile);
+ {
+ struct opt_pass **p = &pass_ipa_tree_profile.pass.sub;
+ NEXT_PASS (pass_feedback_split_functions);
+ }
NEXT_PASS (pass_ipa_increase_alignment);
NEXT_PASS (pass_ipa_matrix_reorg);
NEXT_PASS (pass_ipa_lower_emutls);
@@ -1227,6 +1231,9 @@ execute_function_todo (void *data)
if (flags & TODO_rebuild_frequencies)
rebuild_frequencies ();
+ if (flags & TODO_rebuild_cgraph_edges)
+ rebuild_cgraph_edges ();
+
/* If we've seen errors do not bother running any verifiers. */
if (seen_error ())
return;