diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ggc-common.c | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e6897b4..c469970 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-10-26 Nathan Froyd <froydnj@codesourcery.com> + Nathan Sidwell <nathan@codesourcery.com> + + * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative + when choosing the minimum heapsize. + 2006-10-26 Nathan Froyd <froydnj@codesourcery.com> * gcc/unwind-dw2.h: Move cfa-related variables into diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c index fe75320..3cafc77 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c @@ -751,10 +751,10 @@ ggc_min_heapsize_heuristic (void) # endif /* Don't blindly run over our data limit; do GC at least when the - *next* GC would be within 16Mb of the limit. If GCC does hit the - data limit, compilation will fail, so this tries to be - conservative. */ - limit_kbytes = MAX (0, limit_kbytes - 16 * 1024); + *next* GC would be within 20Mb of the limit or within a quarter of + the limit, whichever is larger. If GCC does hit the data limit, + compilation will fail, so this tries to be conservative. */ + limit_kbytes = MAX (0, limit_kbytes - MAX (limit_kbytes / 4, 20 * 1024)); limit_kbytes = (limit_kbytes * 100) / (110 + ggc_min_expand_heuristic()); phys_kbytes = MIN (phys_kbytes, limit_kbytes); |