stringpool.c (stringpool_statistics): Also report number and percentage of entries...
authorZack Weinberg <zack@wolery.stanford.edu>
Wed, 22 Nov 2000 00:18:18 +0000 (00:18 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Wed, 22 Nov 2000 00:18:18 +0000 (00:18 +0000)
* stringpool.c (stringpool_statistics): Also report number and
percentage of entries which are identifiers.

From-SVN: r37633

gcc/ChangeLog
gcc/stringpool.c

index e5947cb..3e7b3d8 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
+
+       * stringpool.c (stringpool_statistics): Also report number and
+       percentage of entries which are identifiers.
+
 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
 
        * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
index 20db021..ceb454d 100644 (file)
@@ -345,7 +345,7 @@ maybe_get_identifier (text)
 void
 stringpool_statistics ()
 {
-  size_t nelts, overhead, headers;
+  size_t nelts, nids, overhead, headers;
   size_t total_bytes, longest, sum_of_squares;
   double exp_len, exp_len2, exp2_len;
   struct str_header *e;
@@ -356,7 +356,7 @@ stringpool_statistics ()
                     : (x) / (1024*1024))))
 #define LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M'))
 
-  total_bytes = longest = sum_of_squares = 0;
+  total_bytes = longest = sum_of_squares = nids = 0;
   FORALL_STRINGS (e)
     {
       size_t n = e->len;
@@ -365,6 +365,8 @@ stringpool_statistics ()
       sum_of_squares += n*n;
       if (n > longest)
        longest = n;
+      if (e->data)
+       nids++;
     }
       
   nelts = string_hash.nelements;
@@ -374,10 +376,13 @@ stringpool_statistics ()
   fprintf (stderr,
 "\nString pool\n\
 entries\t\t%lu\n\
+identifiers\t%lu (%.2f%%)\n\
 slots\t\t%lu\n\
 bytes\t\t%lu%c (%lu%c overhead)\n\
 table size\t%lu%c\n",
-          (unsigned long) nelts, (unsigned long) string_hash.nslots,
+          (unsigned long) nelts,
+          (unsigned long) nids, nids * 100.0 / nelts,
+          (unsigned long) string_hash.nslots,
           SCALE (total_bytes), LABEL (total_bytes),
           SCALE (overhead), LABEL (overhead),
           SCALE (headers), LABEL (headers));