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 |
|