summaryrefslogtreecommitdiff
path: root/rts/sm/GC.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2007-10-31 14:45:42 +0000
committerSimon Marlow <simonmar@microsoft.com>2007-10-31 14:45:42 +0000
commitcacd714cd545bc3bd07882904055cfee162bd7de (patch)
tree8bf670e81476c6941b1250e09afc43c6866a8989 /rts/sm/GC.h
parentc357244371ca5eeaa0d56a6bd349e26a3b16b7dc (diff)
downloadhaskell-cacd714cd545bc3bd07882904055cfee162bd7de.tar.gz
Remove the optimisation of avoiding scavenging for certain objects
Some objects don't need to be scavenged, in particular if they have no pointers. This seems like an obvious optimisation, but in fact it only accounts for about 1% of objects (in GHC, for example), and the extra complication means it probably isn't worth doing.
Diffstat (limited to 'rts/sm/GC.h')
-rw-r--r--rts/sm/GC.h6
1 files changed, 1 insertions, 5 deletions
diff --git a/rts/sm/GC.h b/rts/sm/GC.h
index d45efb96e4..488a2db8cf 100644
--- a/rts/sm/GC.h
+++ b/rts/sm/GC.h
@@ -88,11 +88,7 @@ typedef struct step_workspace_ {
// where large objects to be scavenged go
bdescr * todo_large_objects;
- // Objects that need not be, or have already been, scavenged. The
- // block at the front of the list is special: objects that don't
- // need to be scavenged are copied directly to this block.
- // Completed scan blocks also go on this list; but we put them
- // after the head block.
+ // Objects that need not be, or have already been, scavenged.
bdescr * scavd_list;
lnat n_scavd_blocks; // count of blocks in this list