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
- Previous message: hg: hsx/hotspot-comp/hotspot: 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86
- Next message: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: hg: hsx/hotspot-comp/hotspot: 7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86
- Next message: Request for review (S): 7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list