]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Dump profile_count along with relative frequency
authorJan Hubicka <jh@suse.cz>
Fri, 7 Jul 2023 21:06:33 +0000 (23:06 +0200)
committerJan Hubicka <jh@suse.cz>
Fri, 7 Jul 2023 21:06:33 +0000 (23:06 +0200)
gcc/ChangeLog:

* profile-count.cc (profile_count::dump): Add FUN
parameter; print relative frequency.
(profile_count::debug): Update.
* profile-count.h (profile_count::dump): Update
prototype.

gcc/profile-count.cc
gcc/profile-count.h

index 16585045f8ea08ca0cafb581103777e08a008fd9..6bf9700d8db68eea3bf0a751f63e9aed5dc6ac72 100644 (file)
@@ -87,10 +87,16 @@ const char *profile_quality_display_names[] =
 /* Dump THIS to BUFFER.  */
 
 void
-profile_count::dump (char *buffer) const
+profile_count::dump (char *buffer, struct function *fun) const
 {
   if (!initialized_p ())
     sprintf (buffer, "uninitialized");
+  else if (fun && initialized_p ()
+          && fun->cfg
+          && ENTRY_BLOCK_PTR_FOR_FN (fun)->count.initialized_p ())
+    sprintf (buffer, "%" PRId64 " (%s freq %.4f)", m_val,
+            profile_quality_display_names[m_quality],
+            to_sreal_scale (ENTRY_BLOCK_PTR_FOR_FN (fun)->count).to_double ());
   else
     sprintf (buffer, "%" PRId64 " (%s)", m_val,
             profile_quality_display_names[m_quality]);
@@ -99,10 +105,10 @@ profile_count::dump (char *buffer) const
 /* Dump THIS to F.  */
 
 void
-profile_count::dump (FILE *f) const
+profile_count::dump (FILE *f, struct function *fun) const
 {
   char buffer[64];
-  dump (buffer);
+  dump (buffer, fun);
   fputs (buffer, f);
 }
 
@@ -111,7 +117,7 @@ profile_count::dump (FILE *f) const
 void
 profile_count::debug () const
 {
-  dump (stderr);
+  dump (stderr, cfun);
   fprintf (stderr, "\n");
 }
 
index 4270793c9f6a8dfbfd50383fcb265ff676e40dcd..99416d9a4634b822ab6c109b39bd9a1a04494455 100644 (file)
@@ -1281,10 +1281,10 @@ public:
   sreal to_sreal_scale (profile_count in, bool *known = NULL) const;
 
   /* Output THIS to F.  */
-  void dump (FILE *f) const;
+  void dump (FILE *f, struct function *fun = NULL) const;
 
   /* Output THIS to BUFFER.  */
-  void dump (char *buffer) const;
+  void dump (char *buffer, struct function *fun = NULL) const;
 
   /* Print THIS to stderr.  */
   void debug () const;