[gclist] Re: PPC & GC, or GC and threads

Hans Boehm boehm@hoh.mti.sgi.com
Sun, 25 Jan 1998 22:04:50 -0800


On Jan 22,  4:35pm, David Gadbois wrote:
>
>    There would appear to be no reason why optimizing compilers
>    couldn't be built to preserve the invariant that there always be a
>    (complete) pointer to every block of live memory.
>
>
> The problem here is that we don't control both the horizontal and the
> vertical.  If the folks writing GCs could impose this invariant on the
> code generators, then it would be only a short step to adding enough
> additional constraints so that they could do a precise GC.  The space
> of applicability for conservative GCs is the one between the
> happenstance of current code generation techniques and the lack of
> time/ability/desire/control/whatever that prevents the implementation
> of a precise GC.
>
Going to a precise GC actually involves a number of additional issues:

1) It doesn't really work for C, thanks mostly to unions.  Thus it also becomes
much more problematic for anything that involves C intercallability.

2) You break compatibility with all existing library code.

3) The various players have to agree on the format of the type information.
 (E.g. the Java JNI vs RNI v.1 vs RNI v.2 mess.)

4) It usually increases code/table size beyond that required by conservative GC
safety.

Hans


-- 
Hans-Juergen Boehm
boehm@mti.sgi.com