From 1c2a6a66460830e85bf5b02ac247cdd45e0908fd Mon Sep 17 00:00:00 2001 From: rguenth Date: Mon, 19 Jun 2006 18:57:28 +0000 Subject: [PATCH] 2006-06-19 Richard Guenther * ggc-page.c (extra_order_size_tab): Add entries with size of struct function and basic_block. (size_lookup): Extend to cover sizes up to 511. (ggc_alloc_stat): Adjust user. (ggc_pch_count_object): Likewise. (ggc_pch_alloc_object): Likewise. (ggc_pch_write_object): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114783 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 10 ++++++++++ gcc/ggc-page.c | 37 +++++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3cca1ab9c3c..50d8902a715 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2006-06-19 Richard Guenther + + * ggc-page.c (extra_order_size_tab): Add entries with + size of struct function and basic_block. + (size_lookup): Extend to cover sizes up to 511. + (ggc_alloc_stat): Adjust user. + (ggc_pch_count_object): Likewise. + (ggc_pch_alloc_object): Likewise. + (ggc_pch_write_object): Likewise. + 2006-06-19 Zdenek Dvorak * tree-ssa-loop-niter.c (implies_ge_p): New function. diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c index ca11fd7ae79..7b1415b785f 100644 --- a/gcc/ggc-page.c +++ b/gcc/ggc-page.c @@ -191,6 +191,8 @@ static const size_t extra_order_size_table[] = { sizeof (struct tree_parm_decl), sizeof (struct tree_var_decl), sizeof (struct tree_list), + sizeof (struct function), + sizeof (struct basic_block_def), TREE_EXP_SIZE (2), RTL_SIZE (2), /* MEM, PLUS, etc. */ RTL_SIZE (9), /* INSN */ @@ -1022,7 +1024,7 @@ release_pages (void) /* This table provides a fast way to determine ceil(log_2(size)) for allocation requests. The minimum allocation size is eight bytes. */ -static unsigned char size_lookup[257] = +static unsigned char size_lookup[511] = { 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, @@ -1040,7 +1042,22 @@ static unsigned char size_lookup[257] = 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8 + 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }; /* Typed allocation function. Does nothing special in this collector. */ @@ -1061,14 +1078,14 @@ ggc_alloc_stat (size_t size MEM_STAT_DECL) struct page_entry *entry; void *result; - if (size <= 256) + if (size < 512) { order = size_lookup[size]; object_size = OBJECT_SIZE (order); } else { - order = 9; + order = 10; while (size > (object_size = OBJECT_SIZE (order))) order++; } @@ -2023,11 +2040,11 @@ ggc_pch_count_object (struct ggc_pch_data *d, void *x ATTRIBUTE_UNUSED, { unsigned order; - if (size <= 256) + if (size < 512) order = size_lookup[size]; else { - order = 9; + order = 10; while (size > OBJECT_SIZE (order)) order++; } @@ -2068,11 +2085,11 @@ ggc_pch_alloc_object (struct ggc_pch_data *d, void *x ATTRIBUTE_UNUSED, unsigned order; char *result; - if (size <= 256) + if (size < 512) order = size_lookup[size]; else { - order = 9; + order = 10; while (size > OBJECT_SIZE (order)) order++; } @@ -2097,11 +2114,11 @@ ggc_pch_write_object (struct ggc_pch_data *d ATTRIBUTE_UNUSED, unsigned order; static const char emptyBytes[256]; - if (size <= 256) + if (size < 512) order = size_lookup[size]; else { - order = 9; + order = 10; while (size > OBJECT_SIZE (order)) order++; } -- 2.11.0