This is the mail archive of the java-discuss@sourceware.cygnus.com mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

class initialization


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?

We could also internally set things up to predict that all classes are
initialized (by using the equivalent of __builtin_expect).  This would
make things faster in the case where the class was already
initialized.  This one I see an unambiguously good.  Making things a
little bit slower when the class needs to be initialized won't hurt.

Tom

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]