Commit 0c62c839 authored by Ben Gamari's avatar Ben Gamari 🐢

NonMoving: Prefetch allocated block for write

This allows us to overlap bringing the block into cache with the search
for the next available block.
parent 4a0610ef
......@@ -552,6 +552,7 @@ void *nonmovingAllocate(Capability *cap, StgWord sz)
struct NonmovingSegment *current = alloca->current[cap->no];
ASSERT(current); // current is never NULL
void *ret = nonmovingSegmentGetBlock_(current, log_block_size, current->next_free);
prefetchForWrite(ret);
ASSERT(GET_CLOSURE_TAG(ret) == 0); // check alignment
// Advance the current segment's next_free or allocate a new segment if full
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment