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))