From a70261eec1b9b6f3a985e84763d465ceaf387175 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 27 Sep 1999 23:05:53 -0700 Subject: [PATCH] ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. (init_ggc): Use it instead of a constant. (ggc_collect): Bound allocated_last_gc by it. From-SVN: r29685 --- gcc/ChangeLog | 6 ++++++ gcc/ggc-page.c | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c1d1140c11..23c794a7428 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Mon Sep 27 23:03:16 1999 Richard Henderson + + * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. + (init_ggc): Use it instead of a constant. + (ggc_collect): Bound allocated_last_gc by it. + Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com) * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c index b5a28990e42..54528a5f3a0 100644 --- a/gcc/ggc-page.c +++ b/gcc/ggc-page.c @@ -255,6 +255,10 @@ static struct globals one) before collection is performed. */ #define GGC_MIN_EXPAND_FOR_GC (1.3) +/* Bound `allocated_last_gc' to 4MB, to prevent the memory expansion + test from triggering too often when the heap is small. */ +#define GGC_MIN_LAST_ALLOCATED (4 * 1024 * 1024) + static page_entry *lookup_page_table_entry PROTO ((void *)); static void set_page_table_entry PROTO ((void *, page_entry *)); @@ -724,9 +728,7 @@ init_ggc () G.debug_file = stdout; #endif - /* Set the initial allocation to 4MB, so no collection will be - performed until the heap is somewhat larger than 4 MB. */ - G.allocated_last_gc = 4 * 1024 * 1024; + G.allocated_last_gc = GGC_MIN_LAST_ALLOCATED; empty_string = ggc_alloc_string ("", 0); ggc_add_string_root (&empty_string, 1); @@ -1034,6 +1036,8 @@ ggc_collect () #endif G.allocated_last_gc = G.allocated; + if (G.allocated_last_gc < GGC_MIN_LAST_ALLOCATED) + G.allocated_last_gc = GGC_MIN_LAST_ALLOCATED; time = get_run_time () - time; gc_time += time; -- 2.30.2