This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Increasing minimum GC allocation
- To: gcc-patches at gcc dot gnu dot org
- Subject: Increasing minimum GC allocation
- From: "Zack Weinberg" <zackw at stanford dot edu>
- Date: Wed, 30 May 2001 21:59:42 -0700
As discussed previously. Approved by Richard Henderson, tested on
i386-linux per usual.
The change to ggc_print_statistics makes the leftmost column report
the actual size instead of its base-2 logarithm. This is more useful
now the sizes aren't all powers of two. That part was not discussed
previously but I feel it's an obvious (if cosmetic) change.
zw
* ggc-page.c (size_lookup): Increase minimum allocation size
to eight bytes.
(ggc_print_statistics): Report size of each bin in bytes, not
as its order; there is no longer a direct relationship.
===================================================================
Index: ggc-page.c
--- ggc-page.c 2001/02/20 05:49:05 1.39
+++ ggc-page.c 2001/05/31 04:55:56
@@ -826,11 +826,11 @@ release_pages ()
}
/* This table provides a fast way to determine ceil(log_2(size)) for
- allocation requests. The minimum allocation size is four bytes. */
+ allocation requests. The minimum allocation size is eight bytes. */
static unsigned char size_lookup[257] =
-{
- 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
+{
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4,
4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
@@ -1446,7 +1446,7 @@ ggc_print_statistics ()
/* Collect some information about the various sizes of
allocation. */
fprintf (stderr, "\n%-5s %10s %10s %10s\n",
- "Log", "Allocated", "Used", "Overhead");
+ "Size", "Allocated", "Used", "Overhead");
for (i = 0; i < NUM_ORDERS; ++i)
{
page_entry *p;
@@ -1472,7 +1472,7 @@ ggc_print_statistics ()
overhead += (sizeof (page_entry) - sizeof (long)
+ BITMAP_SIZE (OBJECTS_PER_PAGE (i) + 1));
}
- fprintf (stderr, "%-5d %10ld%c %10ld%c %10ld%c\n", i,
+ fprintf (stderr, "%-5d %10ld%c %10ld%c %10ld%c\n", OBJECT_SIZE (i),
SCALE (allocated), LABEL (allocated),
SCALE (in_use), LABEL (in_use),
SCALE (overhead), LABEL (overhead));