[gclist] Compiler specialized GC's

Dave Lloyd dave@occl-cam.demon.co.uk
Fri, 1 Mar 96 17:21:55 BST


Darius Blasband wrote:
> > Our GC generates a marking routine for each type in the system rather than
> > interpreting a type description during GC. Makes for quite a fast
> > traversal.
>
> Is you language (hence, type descriptions) more specific ?

Algol68 is statically typed, so I know where I'm going from every type. I saw
a 5-fold performance improvement over a table-driven GC where following a
pointer involved a few indirections to find out what was under it (now a direct
call). There were other improvements as well which helped such as conflating 
non-recursive levels of marking into one routine (but this inflates the code 
size a bit more). Arrays and structures containing structures benefit greatly 
from this.  I have yet to be ruthless about conflating marking routines for 
types which have the same pointers out in the same positions but different 
non-pointer fields.  

----------------------------------------------------------------------
Dave Lloyd                            Email: Dave@occl-cam.demon.co.uk
Oxford and Cambridge Compilers Ltd    Phone: (44) 1223 572074
55 Brampton Rd, Cambridge CB1 3HJ, UK