Hi, this patch makes call time computations consistent again. Bootstrapped/regtested x86_64-linux, comitted.
Honza * ipa-inline.c (edge_badness): Dump sreal frequency. (compute_inlined_call_time): Match natural implementaiton ... * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove forgotten division by CGRAPH_FREQ_BASE. Index: ipa-inline.c =================================================================== --- ipa-inline.c (revision 254724) +++ ipa-inline.c (working copy) @@ -670,8 +670,7 @@ compute_inlined_call_time (struct cgraph /* This calculation should match one in ipa-inline-analysis.c (estimate_edge_size_and_time). */ - time -= (sreal) edge->frequency () - * ipa_call_summaries->get (edge)->call_stmt_time / CGRAPH_FREQ_BASE; + time -= (sreal)ipa_call_summaries->get (edge)->call_stmt_time * freq; time += caller_time; if (time <= 0) time = ((sreal) 1) >> 8; @@ -1164,7 +1163,7 @@ edge_badness (struct cgraph_edge *edge, " overall growth %i (current) %i (original)" " %i (compensated)\n", badness.to_double (), - (double)edge->frequency () / CGRAPH_FREQ_BASE, + edge->sreal_frequency ().to_double (), edge->count.ipa ().initialized_p () ? edge->count.ipa ().to_gcov_type () : -1, caller->count.ipa ().initialized_p () ? caller->count.ipa ().to_gcov_type () : -1, compute_uninlined_call_time (edge, Index: ipa-fnsummary.c =================================================================== --- ipa-fnsummary.c (revision 254719) +++ ipa-fnsummary.c (working copy) @@ -2581,8 +2581,7 @@ estimate_edge_size_and_time (struct cgra if (prob == REG_BR_PROB_BASE) *time += ((sreal)call_time) * e->sreal_frequency (); else - *time += ((sreal)call_time * prob) * e->sreal_frequency () - / CGRAPH_FREQ_BASE; + *time += ((sreal)call_time * prob) * e->sreal_frequency (); }