diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-07 17:27:52 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-07 17:27:52 +0000 |
commit | 28d3effc665ce1967efc443b8f058bbbe3075acb (patch) | |
tree | d681019b5608b07085f815b32e7b7a7e147a154f | |
parent | 8d406004526c5af2b4475509b6dfb687881f1bd4 (diff) | |
download | gcc-28d3effc665ce1967efc443b8f058bbbe3075acb.tar.gz |
* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
for all counters.
(struct output_info): Likewise.
(register_overhead): Remove bad gcc_assert.
(bitmap_find_bit): If there is only a single bitmap element, do not
count a miss as a search.
(print_statistics): Update for counter type changes.
(dump_bitmap_statistics): Likewise. Print headers such that they
are properly lined up with the printed counters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196525 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/bitmap.c | 45 |
2 files changed, 40 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ff171e2a90b..d417f40bde8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2013-03-07 Steven Bosscher <steven@gcc.gnu.org> + + * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT + for all counters. + (struct output_info): Likewise. + (register_overhead): Remove bad gcc_assert. + (bitmap_find_bit): If there is only a single bitmap element, do not + count a miss as a search. + (print_statistics): Update for counter type changes. + (dump_bitmap_statistics): Likewise. Print headers such that they + are properly lined up with the printed counters. + 2013-03-07 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/56559 diff --git a/gcc/bitmap.c b/gcc/bitmap.c index f396ae3e665..b60280a212f 100644 --- a/gcc/bitmap.c +++ b/gcc/bitmap.c @@ -34,11 +34,11 @@ struct bitmap_descriptor_d const char *file; int line; int created; - HOST_WIDEST_INT allocated; - HOST_WIDEST_INT peak; - HOST_WIDEST_INT current; - int nsearches; - int search_iter; + unsigned HOST_WIDEST_INT allocated; + unsigned HOST_WIDEST_INT peak; + unsigned HOST_WIDEST_INT current; + unsigned HOST_WIDEST_INT nsearches; + unsigned HOST_WIDEST_INT search_iter; }; typedef struct bitmap_descriptor_d *bitmap_descriptor; @@ -121,7 +121,6 @@ register_overhead (bitmap b, int amount) desc->current += amount; if (amount > 0) desc->allocated += amount; - gcc_assert (desc->current >= 0); if (desc->peak < desc->current) desc->peak = desc->current; } @@ -565,10 +564,15 @@ bitmap_find_bit (bitmap head, unsigned int bit) bitmap_element *element; unsigned int indx = bit / BITMAP_ELEMENT_ALL_BITS; - if (head->current == 0 + if (head->current == NULL || head->indx == indx) return head->current; + if (head->current == head->first + && head->first->next == NULL) + return NULL; + /* This bitmap has more than one element, and we're going to look + through the elements list. Count that as a search. */ if (GATHER_STATISTICS) bitmap_descriptors[head->descriptor_id]->nsearches++; @@ -2132,8 +2136,8 @@ bitmap_print (FILE *file, const_bitmap head, const char *prefix, const char *suf /* Used to accumulate statistics about bitmap sizes. */ struct output_info { - HOST_WIDEST_INT size; - int count; + unsigned HOST_WIDEST_INT size; + unsigned HOST_WIDEST_INT count; }; /* Called via htab_traverse. Output bitmap descriptor pointed out by SLOT @@ -2153,10 +2157,14 @@ print_statistics (void **slot, void *b) s1 = s2 + 4; sprintf (s, "%s:%i (%s)", s1, d->line, d->function); s[41] = 0; - fprintf (stderr, "%-41s %8d %15"HOST_WIDEST_INT_PRINT"d %15" - HOST_WIDEST_INT_PRINT"d %15"HOST_WIDEST_INT_PRINT"d %10d %10d\n", - s, d->created, d->allocated, d->peak, d->current, d->nsearches, - d->search_iter); + fprintf (stderr, + "%-41s %9u" + " %15"HOST_WIDEST_INT_PRINT"d %15"HOST_WIDEST_INT_PRINT"d" + " %15"HOST_WIDEST_INT_PRINT"d" + " %10"HOST_WIDEST_INT_PRINT"d %10"HOST_WIDEST_INT_PRINT"d\n", + s, d->created, + d->allocated, d->peak, d->current, + d->nsearches, d->search_iter); i->size += d->allocated; i->count += d->created; } @@ -2175,15 +2183,18 @@ dump_bitmap_statistics (void) if (!bitmap_desc_hash) return; - fprintf (stderr, "\nBitmap Overall " - " Allocated Peak Leak searched " - " search itr\n"); + fprintf (stderr, + "\n%-41s %9s %15s %15s %15s %10s %10s\n", + "Bitmap", "Overall", + "Allocated", "Peak", "Leak", + "searched", "search_itr"); fprintf (stderr, "---------------------------------------------------------------------------------\n"); info.count = 0; info.size = 0; htab_traverse (bitmap_desc_hash, print_statistics, &info); fprintf (stderr, "---------------------------------------------------------------------------------\n"); - fprintf (stderr, "%-40s %9d %15"HOST_WIDEST_INT_PRINT"d\n", + fprintf (stderr, + "%-41s %9"HOST_WIDEST_INT_PRINT"d %15"HOST_WIDEST_INT_PRINT"d\n", "Total", info.count, info.size); fprintf (stderr, "---------------------------------------------------------------------------------\n"); } |