Silence overactive sanity check with -fpartial-profile-training

Message ID 20191208140315.r3bbcsglxygpfcdy@kam.mff.cuni.cz
State New
Headers show
Series
  • Silence overactive sanity check with -fpartial-profile-training
Related show

Commit Message

Jan Hubicka Dec. 8, 2019, 2:03 p.m.
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.

Patch

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;