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

AltStyle によって変換されたページ (->オリジナル) /