diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2017-07-01 22:46:40 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-07-01 20:46:40 +0000 |
commit | af2bbc51d3879b6e7a03b4dc2d4ab017a98270ba (patch) | |
tree | 7af6a2ca2adedc6bef10ea8e3c46425031abf858 /gcc/predict.c | |
parent | e39df5466d0cde13fd47e612f20ef2b0ac117e2b (diff) | |
download | gcc-af2bbc51d3879b6e7a03b4dc2d4ab017a98270ba.zip gcc-af2bbc51d3879b6e7a03b4dc2d4ab017a98270ba.tar.gz gcc-af2bbc51d3879b6e7a03b4dc2d4ab017a98270ba.tar.bz2 |
cfg.c (scale_bbs_frequencies): New function.
* cfg.c (scale_bbs_frequencies): New function.
* cfg.h (scale_bbs_frequencies): Declare it.
* cfgloopanal.c (single_likely_exit): Cleanup.
* cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
as parameter.
(scale_loop_profile): Likewise.
(loop_version): Likewise.
(create_empty_loop_on_edge): Update.
* cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
scale_loop_frequencies, scale_loop_profile, loopify,
loop_version): Update prototypes.
* modulo-sched.c (sms_schedule): Update.
* predict.c (unlikely_executed_edge_p): Also check probability.
(probably_never_executed_edge_p): Fix typo.
* tree-if-conv.c (version_loop_for_if_conversion): Update.
* tree-parloops.c (gen_parallel_loop): Update.
* tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
* tree-ssa-loop-split.c (split_loop): Update.
* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
* tree-vect-loop-manip.c (vect_do_peeling): Update.
(vect_loop_versioning): Update.
* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
From-SVN: r249872
Diffstat (limited to 'gcc/predict.c')
-rw-r--r-- | gcc/predict.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/predict.c b/gcc/predict.c index 4ee36ff..4d01bf3 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -245,7 +245,8 @@ probably_never_executed_bb_p (struct function *fun, const_basic_block bb) static bool unlikely_executed_edge_p (edge e) { - return e->count == profile_count::zero () + return (e->count == profile_count::zero () + || e->probability == profile_probability::never ()) || (e->flags & (EDGE_EH | EDGE_FAKE)); } @@ -254,8 +255,8 @@ unlikely_executed_edge_p (edge e) bool probably_never_executed_edge_p (struct function *fun, edge e) { - if (e->count.initialized_p ()) - unlikely_executed_edge_p (e); + if (unlikely_executed_edge_p (e)) + return true; return probably_never_executed (fun, e->count, EDGE_FREQUENCY (e)); } |