GC refactoring: make evacuate() take an StgClosure**
authorSimon Marlow <simonmar@microsoft.com>
Wed, 31 Oct 2007 14:36:34 +0000 (14:36 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 31 Oct 2007 14:36:34 +0000 (14:36 +0000)
commitbf1197b67163d9f5b6509cf836e07ff83cc0a063
treee01bc2f69a3f3581667334db3c72032ff0eb7a7b
parent698364afaf2f346227910c0cf8d4f1929cdc56ef
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.
rts/sm/Evac.c
rts/sm/Evac.h
rts/sm/GC.c
rts/sm/MarkWeak.c
rts/sm/Scav.c