}
{ $example
"USING: compiler.cfg.instructions compiler.cfg.registers compiler.cfg.stacks.clearing prettyprint ;"
- "{ { 0 { } } { 3 { } } } T{ ##call-gc } dangerous-insn?"
+ "{ { 0 { } } { 3 { } } } T{ ##call-gc } dangerous-insn? ."
"t"
}
} ;
] with-variable
] unit-test
- ! scrub-d scrub-r gc-roots
{ 9 B{ 32 1 } } [
32 cfg-w-spill-area-base cfg [
{ 0 24 } <gc-map/spills> 1array
HELP: gc-info
{ $class-description "A struct that defines the sizes of the garbage collection maps for a word. It has the following slots:"
{ $table
- { { $slot "scrub-d-count" } "Number of datastack scrub bits per callsite." }
- { { $slot "scrub-r-count" } "Number of retainstack scrub bits per callsite." }
{ { $slot "gc-root-count" } "Number of gc root bits per callsite." }
{ { $slot "derived-root-count" } "Number of derived roots per callsite." }
{ { $slot "return-address-count" } "Number of gc callsites." }
template <typename Fixup>
void slot_visitor<Fixup>::visit_context(context* ctx) {
- // Callstack is visited first because it scrubs the data and retain
- // stacks.
visit_callstack(ctx);
cell ds_ptr = ctx->datastack;