Looks like there is some inconsistency between edge hotness and callee frequency?
David On Mon, Oct 14, 2013 at 9:08 AM, Dehao Chen <de...@google.com> wrote: > This patch forces to use profile info to check if an edge is hot when > profile is available. > > Bootstrapped and passed regression tests. > > OK for trunk? > > Thanks, > Dehao > > gcc/ChangeLog: > 2013-10-14 Dehao Chen <de...@google.com> > * predict.c(cgraph_maybe_hot_edge_p): Decide edge's hotness from profile. > > Index: gcc/predict.c > =================================================================== > --- gcc/predict.c (revision 203568) > +++ gcc/predict.c (working copy) > @@ -185,10 +185,8 @@ maybe_hot_bb_p (struct function *fun, const_basic_ > bool > cgraph_maybe_hot_edge_p (struct cgraph_edge *edge) > { > - if (profile_info && flag_branch_probabilities > - && !maybe_hot_count_p (NULL, > - edge->count)) > - return false; > + if (profile_info && flag_branch_probabilities) > + return maybe_hot_count_p (NULL, edge->count); > if (edge->caller->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED > || (edge->callee > && edge->callee->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED))