aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/stringpool.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e5947cb..3e7b3d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/stringpool.c b/gcc/stringpool.c
index 20db021..ceb454d 100644
--- a/gcc/stringpool.c
+++ b/gcc/stringpool.c
@@ -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));