GC maps


The compiler.codegen.gc-maps vocab serializes a compiled words gc maps into a space-efficient format which is appended to the end of the code block.

Every code block generated either ends with:
â€ĸ uint 0

or
â€ĸ a bitmap representing the indices of the spill slots that contain roots in each gc map
â€ĸ uint[] base pointers
â€ĸ uint[] return addresses
â€ĸ uint largest GC root spill slot
â€ĸ uint largest derived root spill slot
â€ĸ int number of return addresses/gc maps

For example, if there are three gc maps and each contain four roots, then bit 0-3 in the bitmap would indicate liveness of the first gc maps roots, 4-7 of the second and 8-11 of the third.

Main entry point:
emit-gc-maps ( -- )