]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/profile-count.cc
Dump profile_count along with relative frequency
[thirdparty/gcc.git] / gcc / profile-count.cc
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");
 }