summaryrefslogtreecommitdiff
path: root/gcc/cfgcleanup.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2018-01-24 09:12:40 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2018-01-24 08:12:40 +0000
commit97c07987a6d8052c77125b5f9841abc1f937b3eb (patch)
tree660c3f17e8e166b824b72c77a9eb809b2f20310e /gcc/cfgcleanup.c
parent3885527ddf9ea47d0eab8d2c3a503a8e8e01d97d (diff)
downloadgcc-97c07987a6d8052c77125b5f9841abc1f937b3eb.tar.gz
cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count to merge probabilities.
* cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count to merge probabilities. * predict.c (probably_never_executed): Also mark as cold functions with global 0 profile and guessed local profile. * profile-count.c (profile_probability::combine_with_count): New member function. * profile-count.h (profile_probability::operator*, profile_probability::operator*=, profile_probability::operator/, profile_probability::operator/=): Reduce precision to adjusted and set value to guessed on contradictory divisions. (profile_probability::combine_with_freq): Remove. (profile_probability::combine_wiht_count): Declare. (profile_count::force_nonzero):: Set to adjusted. (profile_count::probability_in):: Set quality to adjusted. * tree-ssa-tail-merge.c (replace_block_by): Use combine_with_count. From-SVN: r257010
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r--gcc/cfgcleanup.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index c33022c1bb5..6892d806e53 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -2130,11 +2130,9 @@ try_crossjump_to_edge (int mode, edge e1, edge e2,
if (FORWARDER_BLOCK_P (s2->dest))
s2->dest->count -= s->count ();
- /* FIXME: Is this correct? Should be rewritten to count API. */
- if (redirect_edges_to->count.nonzero_p () && src1->count.nonzero_p ())
- s->probability = s->probability.combine_with_freq
- (redirect_edges_to->count.to_frequency (cfun),
- s2->probability, src1->count.to_frequency (cfun));
+ s->probability = s->probability.combine_with_count
+ (redirect_edges_to->count,
+ s2->probability, src1->count);
}
/* Adjust count for the block. An earlier jump