summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2015-01-14 08:45:07 +0000
committerSimon Marlow <marlowsd@gmail.com>2015-01-20 12:38:13 +0000
commit9894f6a5b4883ea87fd5f280a2eb4a8abfbd2a6b (patch)
treeba39e603f2283fe168af73c4bcf5b6e733dcb090 /rts
parentd82f592522eb8e063276a8a8c87ab93e18353c6b (diff)
downloadhaskell-9894f6a5b4883ea87fd5f280a2eb4a8abfbd2a6b.tar.gz
comments only
Diffstat (limited to 'rts')
-rw-r--r--rts/sm/Scav.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c
index 2ecb23b424..781840cbae 100644
--- a/rts/sm/Scav.c
+++ b/rts/sm/Scav.c
@@ -285,6 +285,8 @@ scavenge_large_srt_bitmap( StgLargeSRT *large_srt )
for (i = 0; i < size / BITS_IN(W_); i++) {
bitmap = large_srt->l.bitmap[i];
+ // skip zero words: bitmaps can be very sparse, and this helps
+ // performance a lot in some cases.
if (bitmap != 0) {
for (j = 0; j < BITS_IN(W_); j++) {
if ((bitmap & 1) != 0) {