1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-13 17:20:21 +02:00
Commit graph

10 commits

Author SHA1 Message Date
Andy Wingo
9b0bc6e975 mark-sweep: Update markers to deal in heap and spaces
This will let us get rid of "struct context".
2022-03-29 15:06:28 +02:00
Andy Wingo
5a92b43e94 Change serial marker to deal in struct gcobj* instead of uintptr
"struct gcobj*" is how we denote live objects, and the marker will only
see live objects.
2022-03-29 15:04:20 +02:00
Andy Wingo
7ce07de670 First crack at parallel marking 2022-03-12 21:09:17 +01:00
Andy Wingo
9c89672c88 Put a local mark queue in front of the work-stealing queue 2022-03-11 11:57:14 +01:00
Andy Wingo
f57a1b8a55 Refactor to separate gcbench from gc 2022-03-11 11:48:26 +01:00
Andy Wingo
5c8a8a2d3e Store mark bits on the side
Lets the sweeper avoid chasing pointers, and is more amenable to
parallel marking.
2022-03-11 11:23:58 +01:00
Andy Wingo
fb350fb3ff Keep read/write positions when growing queue 2022-03-11 11:23:58 +01:00
Andy Wingo
cfa7ea31ae Move back to marking objects instead of edges 2022-03-11 11:23:58 +01:00
Andy Wingo
45405efe56 Move to mark queue, is it an improvement? 2022-03-11 11:23:58 +01:00
Andy Wingo
d2828975a5 Switch mark-sweep collector to mark stack
Slows down performance though!  Have to think here.
2022-03-11 11:23:58 +01:00