class initialization
Bryce McKinlay
bryce@albatross.co.nz
Mon May 1 02:15:00 GMT 2000
Tom Tromey wrote:
> A while back Anthony changed the compiler to keep track of whether a
> class was already initialized in a given method. This lets us
> eliminate some initializations statically, at least when optimization
> is enabled.
>> Today it occurred to me that we currently initialize this local flag
> as `0' while we could actually initialize it with `class.state >= 12'.
> This is a load, a compare, and a branch per generated call to
> _Jv_InitClass. Is this worth doing? When would it hurt?
I can't see how this could be anything but good. A class actually needing
to be initialized is the (very) uncommon case, and checking class.state
is the first thing _Jv_InitClass does anyway. Combined with a
__builtin_expect-style trick (to straight-line the common case), I think
we'd see a respectable speedup!
regards
[ bryce ]
More information about the Java
mailing list