Wed Oct 31 05:51:36 PDT 2007  Simon Marlow <[EMAIL PROTECTED]>
  * Refactoring of the GC in preparation for parallel GC
    
  This patch localises the state of the GC into a gc_thread structure,
  and reorganises the inner loop of the GC to scavenge one block at a
  time from global work lists in each "step".  The gc_thread structure
  has a "workspace" for each step, in which it collects evacuated
  objects until it has a full block to push out to the step's global
  list.  Details of the algorithm will be on the wiki in due course.
  
  At the moment, THREADED_RTS does not compile, but the single-threaded
  GC works (and is 10-20% slower than before).

    M ./includes/RtsFlags.h +1
    M ./includes/Storage.h -37 +56
    M ./rts/Makefile -1 +1
    M ./rts/RtsFlags.c +14
    M ./rts/sm/Evac.c -79 +89
    M ./rts/sm/GC.c -529 +713
    M ./rts/sm/GC.h -5 +135
    M ./rts/sm/GCUtils.c -33 +132
    M ./rts/sm/GCUtils.h -2 +26
    M ./rts/sm/MarkWeak.c -1 +1
    M ./rts/sm/Scav.c -181 +323
    M ./rts/sm/Scav.h -5 +2
    M ./rts/sm/Storage.c -8 +10

View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20071031125136-760e2-0a6a52f6a21fce45424bd1926a21694f8c91faa5.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to