Hi, do_estimate_edge_time tests that cached and real values matches. This test is not working precisely for global profiles because of roundoff issues when profile of clones is subtracted from profile of offline body. This is checked by presence of ipa counter. This breaks with partial profile training because we turn IPA profiles to local when they drop to 0.
Bootstrapped/regtested x86_64-linux, comitted. * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive sanity check. Index: ipa-inline-analysis.c =================================================================== --- ipa-inline-analysis.c (revision 279076) +++ ipa-inline-analysis.c (working copy) @@ -209,6 +209,7 @@ do_estimate_edge_time (struct cgraph_edg nonspec_time = e->entry.nonspec_time; hints = e->entry.hints; if (flag_checking + && !opt_for_fn (callee->decl, flag_profile_partial_training) && !callee->count.ipa_p ()) { sreal chk_time, chk_nonspec_time;