ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.

* ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
	Remove TYPECODE.
	(ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.

From-SVN: r86456
This commit is contained in:
Daniel Jacobowitz 2004-08-24 00:46:11 +00:00 committed by Daniel Jacobowitz
parent f676971a92
commit d685c974fe
2 changed files with 16 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2004-08-23 Daniel Jacobowitz <dan@debian.org>
* ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
Remove TYPECODE.
(ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
2004-08-23 Eric Christopher <echristo@redhat.com>
* defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.

View File

@ -146,10 +146,13 @@ struct alloc_chunk {
unsigned int magic;
#endif
unsigned int type:1;
unsigned int typecode:14;
unsigned int large:1;
unsigned int size:15;
unsigned int mark:1;
unsigned char large;
unsigned short size;
/* Right now, on 32-bit hosts we don't have enough room to save the
typecode unless we make the one remaining flag into a bitfield.
There's a performance cost to that, so we don't do it until we're
ready to use the type information for something. */
union {
struct alloc_chunk *next_free;
char data[1];
@ -594,7 +597,8 @@ free_chunk (struct alloc_chunk *chunk, size_t size, struct alloc_zone *zone)
/* Allocate a chunk of memory of SIZE bytes. */
static void *
ggc_alloc_zone_1 (size_t orig_size, struct alloc_zone *zone, short type
ggc_alloc_zone_1 (size_t orig_size, struct alloc_zone *zone,
short type ATTRIBUTE_UNUSED
MEM_STAT_DECL)
{
size_t bin = 0;
@ -696,7 +700,8 @@ ggc_alloc_zone_1 (size_t orig_size, struct alloc_zone *zone, short type
#endif
chunk->type = 1;
chunk->mark = 0;
chunk->typecode = type;
/* We could save TYPE in the chunk, but we don't use that for
anything yet. */
result = chunk->u.data;
#ifdef ENABLE_GC_CHECKING