Compacting Garbage Collection with Ambiguous Roots
INFERENCE
AUTHOR NAME
Joel F. Bartlett
SVM HeaderParse 0.1
AUTHOR ADDR
Western Research Laboratory 100 Hamilton Avenue Palo Alto, California 94301 USA
SVM HeaderParse 0.1
ABSTRACT
This paper introduces a copying garbage collection algorithm which is able to compact most of the accessible storage in the heap without having an explicitly defined set of pointers that contain the roots of all accessible storage. Using "hints" found in the processor's registers and stack, the algorithm is able to divide heap allocated objects into two groups: those that might be referenced by a pointer in the stack or registers, and those that are not. The objects which might be referenced are left in place, and the other objects are copied into a more compact representation. A Lisp compiler and runtime system which uses such a collector need not have complete control of the processor in order to force a certain discipline on the stack and registers. A Scheme implementation has been done for the Digital WRL Titan processor which uses a garbage collector based on this "mostly copying" algorithm. Like other languages for the Titan, it uses the Mahler intermediate language as its targe...