public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-4522] Fixes for profile count/probability maintenance
@ 2023-10-09 20:18 Eugene Rozenfeld
  0 siblings, 0 replies; only message in thread
From: Eugene Rozenfeld @ 2023-10-09 20:18 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:cc50337215535e17f1caa5eae34eaa650223c96b

commit r14-4522-gcc50337215535e17f1caa5eae34eaa650223c96b
Author: Eugene Rozenfeld <erozen@microsoft.com>
Date:   Fri Sep 15 18:12:47 2023 -0700

    Fixes for profile count/probability maintenance
    
    Verifier checks have recently been strengthened to check that
    all counts and probabilities are initialized. The checks fired
    during autoprofiledbootstrap build and this patch fixes it.
    
    Tested on x86_64-pc-linux-gnu.
    
    gcc/ChangeLog:
            * auto-profile.cc (afdo_calculate_branch_prob): Fix count comparisons
            * tree-vect-loop-manip.cc (vect_do_peeling): Guard against zero count
            when scaling loop profile

Diff:
---
 gcc/auto-profile.cc         | 4 ++--
 gcc/tree-vect-loop-manip.cc | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc
index ff3b763945c..e75b0469374 100644
--- a/gcc/auto-profile.cc
+++ b/gcc/auto-profile.cc
@@ -1434,7 +1434,7 @@ afdo_calculate_branch_prob (bb_set *annotated_bb)
       else
         total_count += AFDO_EINFO (e)->get_count ();
     }
-    if (num_unknown_succ == 0 && total_count > profile_count::zero ())
+    if (num_unknown_succ == 0 && total_count.nonzero_p())
       {
 	FOR_EACH_EDGE (e, ei, bb->succs)
 	  e->probability
@@ -1571,7 +1571,7 @@ afdo_annotate_cfg (const stmt_set &promoted_stmts)
       DECL_SOURCE_LOCATION (current_function_decl));
   afdo_source_profile->mark_annotated (cfun->function_start_locus);
   afdo_source_profile->mark_annotated (cfun->function_end_locus);
-  if (max_count > profile_count::zero ())
+  if (max_count.nonzero_p())
     {
       /* Calculate, propagate count and probability information on CFG.  */
       afdo_calculate_branch_prob (&annotated_bb);
diff --git a/gcc/tree-vect-loop-manip.cc b/gcc/tree-vect-loop-manip.cc
index 09641901ff1..2608c286e5d 100644
--- a/gcc/tree-vect-loop-manip.cc
+++ b/gcc/tree-vect-loop-manip.cc
@@ -3335,7 +3335,7 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1,
 	      free (bbs);
 	      free (original_bbs);
 	    }
-	  else
+	  else if (old_count.nonzero_p ())
 	    scale_loop_profile (epilog, guard_to->count.probability_in (old_count), -1);
 
 	  /* Only need to handle basic block before epilog loop if it's not

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-10-09 20:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-09 20:18 [gcc r14-4522] Fixes for profile count/probability maintenance Eugene Rozenfeld

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).