Improve memory statistics report readability.
authorMartin Liska <mliska@suse.cz>
Tue, 26 Feb 2019 17:27:52 +0000 (18:27 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 26 Feb 2019 17:27:52 +0000 (17:27 +0000)
2019-02-26  Martin Liska  <mliska@suse.cz>

* alloc-pool.h (struct pool_usage): Remove extra
print_dash_line.
* bitmap.h (struct bitmap_usage): Likewise.
* ggc-common.c (struct ggc_usage): Likewise.
* mem-stats.h (struct mem_usage): Likewise.
(mem_alloc_description::dump): Print dash lines
here and repeat header at the end of a table report.
It's then more readable.
* tree-phinodes.c (phinodes_print_statistics): Make
horizontal alignment.
* tree-ssanames.c (ssanames_print_statistics): Likewise.
* vec.c (struct vec_usage): Remove extra print_dash_line.
* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
2019-02-26  Martin Liska  <mliska@suse.cz>

* symtab.c (ht_dump_statistics): Make
horizontal alignment for statistics.

From-SVN: r269221

gcc/ChangeLog
gcc/alloc-pool.h
gcc/bitmap.h
gcc/ggc-common.c
gcc/mem-stats.h
gcc/tree-phinodes.c
gcc/tree-ssanames.c
gcc/vec.c
gcc/vec.h
libcpp/ChangeLog
libcpp/symtab.c

index 8730434a29c71cae83eb93f7aa921a1bd9810ea0..8c07ccfc4a7600320d31e07e3bb2f5fcfb078553 100644 (file)
@@ -1,3 +1,19 @@
+2019-02-26  Martin Liska  <mliska@suse.cz>
+
+       * alloc-pool.h (struct pool_usage): Remove extra
+       print_dash_line.
+       * bitmap.h (struct bitmap_usage): Likewise.
+       * ggc-common.c (struct ggc_usage): Likewise.
+       * mem-stats.h (struct mem_usage): Likewise.
+       (mem_alloc_description::dump): Print dash lines
+       here and repeat header at the end of a table report.
+       It's then more readable.
+       * tree-phinodes.c (phinodes_print_statistics): Make
+       horizontal alignment.
+       * tree-ssanames.c (ssanames_print_statistics): Likewise.
+       * vec.c (struct vec_usage): Remove extra print_dash_line.
+       * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
+
 2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>
 
        * doc/extend.texi (__builtin_object_size):
index 4af926dcff178314ca6ec93a03b3a0be75e58861..d32081003163872a0bc880f1b751837ea2adaf96 100644 (file)
@@ -83,17 +83,14 @@ struct pool_usage: public mem_usage
   {
     fprintf (stderr, "%-32s%-48s %6s%11s%16s%17s%12s\n", "Pool name", name,
             "Pools", "Leak", "Peak", "Times", "Elt size");
-    print_dash_line ();
   }
 
   /* Dump footer.  */
   inline void
   dump_footer ()
   {
-    print_dash_line ();
     fprintf (stderr, "%s" PRsa(82) PRsa(10) "\n", "Total",
             SIZE_AMOUNT (m_instances), SIZE_AMOUNT (m_allocated));
-    print_dash_line ();
   }
 
   /* Element size.  */
index 11c75e9ef69e9135ea0982c8072130a649137ec1..ed25c1ee5da0336050aca5240b11e15e5eaf1694 100644 (file)
@@ -258,7 +258,6 @@ struct bitmap_usage: public mem_usage
   {
     fprintf (stderr, "%-48s %11s%16s%17s%12s%12s%10s\n", name, "Leak", "Peak",
             "Times", "N searches", "Search iter", "Type");
-    print_dash_line ();
   }
 
   /* Number search operations.  */
index 9a12fad583867d1597ecb6a7329763be63d4db05..0d1e5bf2bf5e7d9fbb2b177e4e0bb5a7ba33b499 100644 (file)
@@ -910,9 +910,7 @@ struct ggc_usage: public mem_usage
   inline void
   dump_footer ()
   {
-    print_dash_line ();
     dump ("Total", *this);
-    print_dash_line ();
   }
 
   /* Get balance which is GGC allocation leak.  */
@@ -955,7 +953,6 @@ struct ggc_usage: public mem_usage
   {
     fprintf (stderr, "%-48s %11s%17s%17s%16s%17s\n", name, "Garbage", "Freed",
             "Leak", "Overhead", "Times");
-    print_dash_line ();
   }
 
   /* Freed memory in bytes.  */
index cbc328f4b3d991987d9d7fbd0e49cc8b41b67bea..7612e7de3d2fd5d4005c5f97a53276a2fe76d281 100644 (file)
@@ -219,10 +219,8 @@ struct mem_usage
   inline void
   dump_footer () const
   {
-    print_dash_line ();
     fprintf (stderr, "%s" PRsa (53) PRsa (26) "\n", "Total",
             SIZE_AMOUNT (m_allocated), SIZE_AMOUNT (m_times));
-    print_dash_line ();
   }
 
   /* Return fraction of NOMINATOR and DENOMINATOR in percent.  */
@@ -247,7 +245,6 @@ struct mem_usage
   {
     fprintf (stderr, "%-48s %11s%16s%10s%17s\n", name, "Leak", "Peak",
             "Times", "Type");
-    print_dash_line ();
   }
 
   /* Current number of allocated bytes.  */
@@ -631,11 +628,17 @@ mem_alloc_description<T>::dump (mem_alloc_origin origin,
   mem_list_t *list = get_list (origin, &length, cmp);
   T total = get_sum (origin);
 
+  T::print_dash_line ();
   T::dump_header (mem_location::get_origin_name (origin));
+  T::print_dash_line ();
   for (int i = length - 1; i >= 0; i--)
     list[i].second->dump (list[i].first, total);
+  T::print_dash_line ();
 
+  T::dump_header (mem_location::get_origin_name (origin));
+  T::print_dash_line ();
   total.dump_footer ();
+  T::print_dash_line ();
 
   XDELETEVEC (list);
 
index 54e1452e80c4cccc3e5d4f51ed7bba0d2d9e6f4f..d062f4e36f62c8936f5800e846a1023622b72e0e 100644 (file)
@@ -80,9 +80,9 @@ unsigned int phi_nodes_created;
 void
 phinodes_print_statistics (void)
 {
-  fprintf (stderr, "PHI nodes allocated: " PRsa (11) "\n",
+  fprintf (stderr, "%-32s" PRsa (11) "\n", "PHI nodes allocated:",
           SIZE_AMOUNT (phi_nodes_created));
-  fprintf (stderr, "PHI nodes reused: " PRsa (11) "\n",
+  fprintf (stderr, "%-32s" PRsa (11) "\n", "PHI nodes reused:",
           SIZE_AMOUNT (phi_nodes_reused));
 }
 
index 51f52bb5bd3c2ab7632bf028d492866be1009d81..c457334bb311bbdff9437c6390ba46707ff3457b 100644 (file)
@@ -112,9 +112,9 @@ fini_ssanames (struct function *fn)
 void
 ssanames_print_statistics (void)
 {
-  fprintf (stderr, "SSA_NAME nodes allocated: " PRsa (11) "\n",
+  fprintf (stderr, "%-32s" PRsa (11) "\n", "SSA_NAME nodes allocated:",
           SIZE_AMOUNT (ssa_name_nodes_created));
-  fprintf (stderr, "SSA_NAME nodes reused: " PRsa (11) "\n",
+  fprintf (stderr, "%-32s" PRsa (11) "\n", "SSA_NAME nodes reused:",
           SIZE_AMOUNT (ssa_name_nodes_reused));
 }
 
index c418cb8660a3b004dc2a086864834d5d5840e97e..f4749229ca2a973672e0a2b3f0a6a56a14e578c1 100644 (file)
--- a/gcc/vec.c
+++ b/gcc/vec.c
@@ -98,11 +98,9 @@ struct vec_usage: public mem_usage
   inline void
   dump_footer ()
   {
-    print_dash_line ();
     fprintf (stderr, "%s" PRsa (64) PRsa (25) PRsa (16) "\n",
             "Total", SIZE_AMOUNT (m_allocated),
             SIZE_AMOUNT (m_times), SIZE_AMOUNT (m_items));
-    print_dash_line ();
   }
 
   /* Dump header with NAME.  */
@@ -111,7 +109,6 @@ struct vec_usage: public mem_usage
   {
     fprintf (stderr, "%-48s %10s%11s%16s%10s%17s%11s\n", name, "sizeof(T)",
             "Leak", "Peak", "Times", "Leak items", "Peak items");
-    print_dash_line ();
   }
 
   /* Current number of items allocated.  */
index 4bd9df9aba54220adf162d2125c36fc5798f5ac9..2dbf3074da09015793ba02a1c0dec07c062cbb9b 100644 (file)
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -739,7 +739,7 @@ inline void
 vec_safe_grow_cleared (vec<T, va_heap, vl_ptr> *&v,
                       unsigned len CXX_MEM_STAT_INFO)
 {
-  v->safe_grow_cleared (len);
+  v->safe_grow_cleared (len PASS_MEM_STAT);
 }
 
 
index 355b4cb0f739560228d14826d8298a53ad02874d..261494bd4478da763aa5bc2c5e9145fe5393163d 100644 (file)
@@ -1,3 +1,8 @@
+2019-02-26  Martin Liska  <mliska@suse.cz>
+
+       * symtab.c (ht_dump_statistics): Make
+       horizontal alignment for statistics.
+
 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
 
        PR c/89410
index 26c094e85c8f64e3e8de1f3bfd92742be8d76c31..5048b47bc78cb20d433b15a9955ad9b22e6d2764 100644 (file)
@@ -306,39 +306,41 @@ ht_dump_statistics (cpp_hash_table *table)
   nelts = table->nelements;
   headers = table->nslots * sizeof (hashnode);
 
-  fprintf (stderr, "\nString pool\nentries\t\t%lu\n",
+  fprintf (stderr, "\nString pool\n%-32s%lu\n", "entries:",
           (unsigned long) nelts);
-  fprintf (stderr, "identifiers\t%lu (%.2f%%)\n",
+  fprintf (stderr, "%-32s%lu (%.2f%%)\n", "identifiers:",
           (unsigned long) nids, nids * 100.0 / nelts);
-  fprintf (stderr, "slots\t\t%lu\n",
+  fprintf (stderr, "%-32s%lu\n", "slots:",
           (unsigned long) table->nslots);
-  fprintf (stderr, "deleted\t\t%lu\n",
+  fprintf (stderr, "%-32s%lu\n", "deleted:",
           (unsigned long) deleted);
 
   if (table->alloc_subobject)
-    fprintf (stderr, "GGC bytes\t%lu%c\n",
+    fprintf (stderr, "%-32s%lu%c\n", "GGC bytes:",
             SCALE (total_bytes), LABEL (total_bytes));
   else
     {
       overhead = obstack_memory_used (&table->stack) - total_bytes;
-      fprintf (stderr, "obstack bytes\t%lu%c (%lu%c overhead)\n",
+      fprintf (stderr, "%-32s%lu%c (%lu%c overhead)\n",
+              "obstack bytes:",
               SCALE (total_bytes), LABEL (total_bytes),
               SCALE (overhead), LABEL (overhead));
     }
-  fprintf (stderr, "table size\t%lu%c\n",
+  fprintf (stderr, "%-32s%lu%c\n", "table size:",
           SCALE (headers), LABEL (headers));
 
   exp_len = (double)total_bytes / (double)nelts;
   exp2_len = exp_len * exp_len;
   exp_len2 = (double) sum_of_squares / (double) nelts;
 
-  fprintf (stderr, "coll/search\t%.4f\n",
+  fprintf (stderr, "%-32s%.4f\n", "coll/search:",
           (double) table->collisions / (double) table->searches);
-  fprintf (stderr, "ins/search\t%.4f\n",
+  fprintf (stderr, "%-32s%.4f\n", "ins/search:",
           (double) nelts / (double) table->searches);
-  fprintf (stderr, "avg. entry\t%.2f bytes (+/- %.2f)\n",
+  fprintf (stderr, "%-32s%.2f bytes (+/- %.2f)\n",
+          "avg. entry:",
           exp_len, approx_sqrt (exp_len2 - exp2_len));
-  fprintf (stderr, "longest entry\t%lu\n",
+  fprintf (stderr, "%-32s%lu\n", "longest entry:",
           (unsigned long) longest);
 #undef SCALE
 #undef LABEL