[gclist] collector optimization
Ji-Yong D. Chung
virtualcyber@erols.com
Sun, 11 Mar 2001 20:50:15 -0500
Hi,
> [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
interface,
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.