Failing typeflow responsibility assertions

John Rose John.Rose at Sun.COM
Tue May 20 10:59:04 PDT 2008


On May 20, 2008, at 12:44 AM, Gary Benson wrote:

> That's awesome!  I wasn't using it until yesterday but I am now :)

I'm glad it's helpful!

> So does the ciTypeFlow pass actually load the unloaded classes for
> you?

No, the JIT tries pretty hard not to load classes.  IIRC, the only  
exception to this rule is the call to load_signature_classes in  
compileBroker.cpp.

JIT compilation should be transparent to Java execution, but loading  
classes causes class loader code to execute.  If the JIT causes  
bytecode execution, then the JIT can cause application state changes,  
which explores new application states unnecessarily.  This can expose  
JIT-entangled bugs in the application.  You want this in stress  
testing, but not in the field.

The JVM spec. allows class loading--not initialization--for any  
reason, but it's better (for system reproducibility) if the JIT has  
no detectable effect on app. state except speedups.

-- John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20080520/2023e9ab/attachment.html 


More information about the hotspot-compiler-dev mailing list