Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Jun 12 11:21:35 PDT 2012


Looks good to me. Only concern is how set_exception_handlers() affects new code.

Vladimir

Christian Thalinger wrote:
> http://cr.openjdk.java.net/~twisti/7174928
> 
> 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
> Reviewed-by:
> 
> While testing a new flag I want to introduce (TraceOSR) I noticed that
> unresolved invokedynamic call sites compiled in C1 deoptimize and OSR
> infinitely.  The reason for that is we deoptimize but we don't have machinery
> in C1 to tell to throw the method out and recompile it.  So we just enter the
> same method again and hit the same unresolved call site.
> 
> The fix is to conditionally jump to the deopt stub in generated code if the
> CallSite object is null.  Handling it this way it is not required to
> recompile the code.
> 
> Tested with JRuby's bench_red_black.rb
> 
> src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
> src/share/vm/c1/c1_LIRGenerator.cpp
> src/share/vm/interpreter/interpreterRuntime.cpp
> src/share/vm/oops/methodOop.cpp
> src/share/vm/oops/methodOop.hpp
> 


More information about the hotspot-compiler-dev mailing list