X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FGC.c;h=270784e45703a463304d1f83867f086e540817f4;hb=e576ba5d31fbae54c43e88316fb0dbdba9cbd4ff;hp=0b08bc8d8ec5a8304913ff52b167593427b86894;hpb=cb3cb473854e815784375ad23cc5081621a95ce8;p=ghc-hetmet.git diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 0b08bc8..270784e 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -1,9 +1,14 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team 1998-2003 + * (c) The GHC Team 1998-2006 * * Generational garbage collector * + * Documentation on the architecture of the Garbage Collector can be + * found in the online commentary: + * + * http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC + * * ---------------------------------------------------------------------------*/ #include "PosixSource.h" @@ -12,8 +17,6 @@ #include "RtsUtils.h" #include "Apply.h" #include "OSThreads.h" -#include "Storage.h" -#include "Stable.h" #include "LdvProfile.h" #include "Updates.h" #include "Stats.h" @@ -479,10 +482,6 @@ GarbageCollect ( rtsBool force_major_gc ) */ markStablePtrTable(mark_root); - /* Mark the root pointer table. - */ - markRootPtrTable(mark_root); - /* ------------------------------------------------------------------------- * Repeatedly scavenge all the areas we know about until there's no * more scavenging to be done. @@ -650,7 +649,7 @@ GarbageCollect ( rtsBool force_major_gc ) if (g <= N) { copied -= stp->hp_bd->start + BLOCK_SIZE_W - stp->hp_bd->free; - scavd_copied -= (P_)(BLOCK_ROUND_UP(stp->scavd_hp)) - stp->scavd_hp; + scavd_copied -= stp->scavd_hpLim - stp->scavd_hp; } }