From: simonm Date: Tue, 23 Feb 1999 17:18:01 +0000 (+0000) Subject: [project @ 1999-02-23 17:18:01 by simonm] X-Git-Tag: Approximately_9120_patches~6518 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=4a6ff5cac7d833d4fbe5ee66024d0a29a1ea5ecf;p=ghc-hetmet.git [project @ 1999-02-23 17:18:01 by simonm] - If -H is larger than -M, set -M to -H - Fix a couple of bugs in calcLive(). --- diff --git a/ghc/rts/Storage.c b/ghc/rts/Storage.c index c309b3f..0ba8a5e 100644 --- a/ghc/rts/Storage.c +++ b/ghc/rts/Storage.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Storage.c,v 1.13 1999/02/17 17:35:31 simonm Exp $ + * $Id: Storage.c,v 1.14 1999/02/23 17:18:01 simonm Exp $ * * (c) The GHC Team, 1998-1999 * @@ -55,7 +55,7 @@ initStorage (void) if (RtsFlags.GcFlags.heapSizeSuggestion > RtsFlags.GcFlags.maxHeapSize) { - barf("Suggested heap size (-H) is larger than max. heap size (-M)\n"); + RtsFlags.GcFlags.maxHeapSize = RtsFlags.GcFlags.heapSizeSuggestion; } initBlockAllocator(); @@ -389,18 +389,19 @@ calcLive(void) if (RtsFlags.GcFlags.generations == 1) { live = g0s0->to_blocks * BLOCK_SIZE_W + ((lnat)g0s0->hp_bd->free - (lnat)g0s0->hp_bd->start) / sizeof(W_); + return live; } for (g = 0; g < RtsFlags.GcFlags.generations; g++) { for (s = 0; s < generations[g].n_steps; s++) { /* approximate amount of live data (doesn't take into account slop - * at end of each block). - */ + * at end of each block). + */ if (g == 0 && s == 0) { continue; } step = &generations[g].steps[s]; - live += step->n_blocks * BLOCK_SIZE_W + + live += (step->n_blocks - 1) * BLOCK_SIZE_W + ((lnat)step->hp_bd->free -(lnat)step->hp_bd->start) / sizeof(W_); } }