aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-06-29 16:14:15 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-06-29 14:14:15 +0000
commitb35366ce42d0cc1218679337be0a779c20af35e0 (patch)
treea5ef0708be39861c165f5c5612b671234a8fd8de /gcc/passes.c
parent50b56694bb665f06ad0a327498bebe45e0bd3d0d (diff)
downloadgcc-b35366ce42d0cc1218679337be0a779c20af35e0.zip
gcc-b35366ce42d0cc1218679337be0a779c20af35e0.tar.gz
gcc-b35366ce42d0cc1218679337be0a779c20af35e0.tar.bz2
predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is unreachable.
* predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is unreachable. (rebuild_frequencies): New function. * predict.h (rebuild_frequencies): Declare. * tree-inline.c (copy_cfg_body): Compute properly count & frequency of entry block and edge reaching new_entry. (tree_function_versioning): When doing partial cloning, rebuild frequencies when done. * passes.c (execute_function_todo): Use rebild_frequencies. From-SVN: r161536
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index 03de581..8828967 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1243,22 +1243,7 @@ execute_function_todo (void *data)
}
if (flags & TODO_rebuild_frequencies)
- {
- if (profile_status == PROFILE_GUESSED)
- {
- loop_optimizer_init (0);
- add_noreturn_fake_exit_edges ();
- mark_irreducible_loops ();
- connect_infinite_loops_to_exit ();
- estimate_bb_frequencies ();
- remove_fake_exit_edges ();
- loop_optimizer_finalize ();
- }
- else if (profile_status == PROFILE_READ)
- counts_to_freqs ();
- else
- gcc_unreachable ();
- }
+ rebuild_frequencies ();
#if defined ENABLE_CHECKING
if (flags & TODO_verify_ssa