summaryrefslogtreecommitdiff
path: root/rts/BeginPrivate.h
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-07-31 21:54:28 -0400
committerBen Gamari <ben@smart-cactus.org>2019-10-22 18:57:27 -0400
commita69b28f4c33cb1909b8560cbc79ff59bf69caf35 (patch)
treee922bf0da47c779553f36eeb161248b4b827efe4 /rts/BeginPrivate.h
parent91109404b7acbb9cbec496e519a4fac3f51e4f22 (diff)
downloadhaskell-a69b28f4c33cb1909b8560cbc79ff59bf69caf35.tar.gz
nonmoving: Don't do two passes over large and compact object lists
Previously we would first move the new objects to their appropriate non-moving GC list, then do another pass over that list to clear their mark bits. This is needlessly expensive. First clear the mark bits of the existing objects, then add the newly evacuated objects and, at the same time, clear their mark bits. This cuts the preparatory GC time in half for the Pusher benchmark with a large queue size.
Diffstat (limited to 'rts/BeginPrivate.h')
0 files changed, 0 insertions, 0 deletions