summaryrefslogtreecommitdiff
path: root/gcc/ggc-common.c
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2006-10-26 20:39:10 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2006-10-26 20:39:10 +0000
commitded5f8f464ff16e86310c8128c1ff83c4eb9ee0f (patch)
tree0d31700f667ffc325c2da4256a1a1e9f0e7e830f /gcc/ggc-common.c
parenta38677037cca7c646a7b6211483caeb3d69fc1f0 (diff)
downloadgcc-ded5f8f464ff16e86310c8128c1ff83c4eb9ee0f.tar.gz
ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative when choosing the minimum heapsize.
* ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative when choosing the minimum heapsize. Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com> From-SVN: r118070
Diffstat (limited to 'gcc/ggc-common.c')
-rw-r--r--gcc/ggc-common.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index fe75320bdb1..3cafc770efd 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);