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

Christian Thalinger christian.thalinger at oracle.com
Tue Jun 12 10:56:40 PDT 2012


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