[gclist] collector optimization

Ji-Yong D. Chung virtualcyber@erols.com
Sun, 11 Mar 2001 20:50:15 -0500


> [you wrote[ I used BW as part of a JIT-compiling Java runtime.
> Apart from the things David mentioned I also:
> - hacked to the codegen to use the delay slots (SPARC target) to
>   zero known-dead pointers in registers.  If you know enough about the
>   instruction scheduling a compiler can probably often find a good spot
>   to stomp a dead reference.  I never quantified the improvement, but it
>   was basically free (the delay slots would have been nops otherwise),
>   and its hard to see how it couldn't help.

    I don't deal with code generator for SPARC, so my knowledge here
is limited -- but if I understand you right, you are basically replacing
dead code with instructions for zeroing pointers that will no longer be
referenced?  That seems to make sense.

    I will try to zero out all useless pointers/values from local variables.
in function calls.  (Does this gain you much, though, I still wonder)

> - used the typed-allocation interface.  The class-layout routines would
>   always clump pointer and non-pointer class members, so it was
>   reasonably easy to generate a descriptor with a number of clumps of
>   pointers (sub-class pointers could not be clumped with the super-class
>   pointers).

    This seems ... just a bit painful, as you have mentioned that
the performance gain may not be much :)  To use the typed allocator
I would need to invoke a bit-map factory, in a static function, for every
class I have created to be used with GC.  Thats significant amount of
work for gain that maybe marginal.