Wed Oct 31 07:36:34 PDT 2007 Simon Marlow <[EMAIL PROTECTED]>
* 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
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc