diff options
author | Jan Hubicka <jh@suse.cz> | 2011-01-10 15:33:04 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-01-10 14:33:04 +0000 |
commit | cf9712ccc092e054e2a48d78c275b709700a0032 (patch) | |
tree | bbc73f1eb46e75ef826904a55147a08ff0e52674 /gcc/passes.c | |
parent | 94cd932caeac5f720dd5a5f78583a5eaea456c6c (diff) | |
download | gcc-cf9712ccc092e054e2a48d78c275b709700a0032.zip gcc-cf9712ccc092e054e2a48d78c275b709700a0032.tar.gz gcc-cf9712ccc092e054e2a48d78c275b709700a0032.tar.bz2 |
re PR tree-optimization/47234 (ipa-split is executed before profile feedback is read)
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.
From-SVN: r168632
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 4be61a9..804ac9f 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; |