patch applied (ghc): GC refactoring: make evacuate() take an
StgClosure**
Simon Marlow
simonmarhaskell at gmail.com
Tue Jun 17 10:33:27 EDT 2008
Wed Oct 31 07:36:34 PDT 2007 Simon Marlow <simonmar at microsoft.com>
* GC refactoring: make evacuate() take an StgClosure**
Change the type of evacuate() from
StgClosure *evacuate(StgClosure *);
to
void evacuate(StgClosure **);
So evacuate() itself writes the source pointer, rather than the
caller. This is slightly cleaner, and avoids a few memory writes:
sometimes evacuate() doesn't move the object, and in these cases the
source pointer doesn't need to be written. It doesn't have a
measurable impact on performance, though.
M ./rts/sm/Evac.c -91 +128
M ./rts/sm/Evac.h -1 +1
M ./rts/sm/GC.c -2 +7
M ./rts/sm/MarkWeak.c -7 +10
M ./rts/sm/Scav.c -133 +130
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20071031143634-760e2-a0e4ad30d0d64c0c98d914aee380a22bdaffe122.gz
More information about the Cvs-ghc
mailing list