Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
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