Andy Wingo
32ddaa7624
Allocate GC context in GC-managed heap
2022-03-16 21:31:51 +01:00
Andy Wingo
e7a3f83bcc
Add quads benchmark
...
Also expand GC interface with "allocate_pointerless". Limit lazy
sweeping to the allocation size that is causing the sweep, without
adding to fragmentation.
2022-03-16 14:16:22 +01:00
Andy Wingo
a693c4ea8a
Bugfix to mark-sweep
...
Before this, the last sweep would cause premature gc
2022-03-13 21:45:20 +01: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
df9edfdff2
Remove tiny objects from mark-sweep
2022-03-11 11:48:26 +01:00
Andy Wingo
f57a1b8a55
Refactor to separate gcbench from gc
2022-03-11 11:48:26 +01:00
Andy Wingo
77ac530360
Add beginnings of parallel marker
2022-03-11 11:48:26 +01:00
Andy Wingo
01d3f9627e
Further accelerate sweeping
2022-03-11 11:48:17 +01:00
Andy Wingo
5edc4fa81a
More efficient sweep
2022-03-11 11:44:11 +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
91a330e310
More asserts in mark-sweep
2022-03-11 11:23:58 +01:00
Andy Wingo
c612ff3825
Optimize computation of size class from small object granule count
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
Andy Wingo
502c0455a7
Fix mark-sweep allocator to clear contents
2022-03-11 11:23:43 +01:00
Andy Wingo
7b85284a89
Add mark-sweep collector
2022-03-07 10:23:05 +01:00