summaryrefslogtreecommitdiff
path: root/rts/sm/NonMovingMark.c
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-05-16 17:14:38 -0400
committerBen Gamari <ben@smart-cactus.org>2019-10-22 12:18:39 -0400
commit56c5ebdc5d907313689ac08cbe15145f29fb83d5 (patch)
treea420d6af7f46c50fe8a0fc44b880e03e65aeb089 /rts/sm/NonMovingMark.c
parente6f6823f1eb5ae43a7cd782a649f55c40a5d53fd (diff)
downloadhaskell-56c5ebdc5d907313689ac08cbe15145f29fb83d5.tar.gz
NonMoving: Prefetch segment header
Diffstat (limited to 'rts/sm/NonMovingMark.c')
-rw-r--r--rts/sm/NonMovingMark.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/sm/NonMovingMark.c b/rts/sm/NonMovingMark.c
index ddc1a1234a..27b2b679b7 100644
--- a/rts/sm/NonMovingMark.c
+++ b/rts/sm/NonMovingMark.c
@@ -764,6 +764,7 @@ static MarkQueueEnt markQueuePop (MarkQueue *q)
// MarkQueueEnt encoding always places the pointer to the object to be
// marked first.
prefetchForRead(&new.mark_closure.p->header.info);
+ prefetchForRead(&nonmovingGetSegment_unchecked((StgPtr) new.mark_closure.p)->block_size);
q->prefetch_queue[i] = new;
i = (i + 1) % MARK_PREFETCH_QUEUE_DEPTH;
}