aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
parenta38677037cca7c646a7b6211483caeb3d69fc1f0 (diff)
downloadgcc-ded5f8f464ff16e86310c8128c1ff83c4eb9ee0f.zip
gcc-ded5f8f464ff16e86310c8128c1ff83c4eb9ee0f.tar.gz
gcc-ded5f8f464ff16e86310c8128c1ff83c4eb9ee0f.tar.bz2
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')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ggc-common.c8
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);