* [patch] minor bitmap.c GATHER_STATISTICS fix-ups
@ 2013-03-06 23:05 Steven Bosscher
2013-03-07 9:55 ` Richard Biener
0 siblings, 1 reply; 2+ messages in thread
From: Steven Bosscher @ 2013-03-06 23:05 UTC (permalink / raw)
To: GCC Patches; +Cc: Richard Biener
[-- Attachment #1: Type: text/plain, Size: 727 bytes --]
Hello,
This patch fixes a bunch of smaller issues with GATHER_STATISTICS for
bitmaps: overflows in counters and ugly output format.
Bootstrapped (with and without GATHER_STATISTICS) and regtested on
powerpc64-unknown-linux-gnu and on x86_64-unknown-linux-gnu. OK for
trunk?
Ciao!
Steven
* 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.
[-- Attachment #2: bitmap_stats_fixes.diff.txt --]
[-- Type: text/plain, Size: 4059 bytes --]
* 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.
Index: bitmap.c
===================================================================
--- bitmap.c (revision 196508)
+++ bitmap.c (working copy)
@@ -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
/* 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");
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [patch] minor bitmap.c GATHER_STATISTICS fix-ups
2013-03-06 23:05 [patch] minor bitmap.c GATHER_STATISTICS fix-ups Steven Bosscher
@ 2013-03-07 9:55 ` Richard Biener
0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2013-03-07 9:55 UTC (permalink / raw)
To: Steven Bosscher; +Cc: GCC Patches
On Thu, Mar 7, 2013 at 12:04 AM, Steven Bosscher <stevenb.gcc@gmail.com> wrote:
> Hello,
>
> This patch fixes a bunch of smaller issues with GATHER_STATISTICS for
> bitmaps: overflows in counters and ugly output format.
>
> Bootstrapped (with and without GATHER_STATISTICS) and regtested on
> powerpc64-unknown-linux-gnu and on x86_64-unknown-linux-gnu. OK for
> trunk?
Ok.
Thanks,
Richard.
> Ciao!
> Steven
>
>
> * 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.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-03-07 9:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-06 23:05 [patch] minor bitmap.c GATHER_STATISTICS fix-ups Steven Bosscher
2013-03-07 9:55 ` Richard Biener
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).