Request for review (M): 6969574: invokedynamic call sites deoptimize instead of executing

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jul 15 15:01:04 PDT 2010


Looks good.

Vladimir

John Rose wrote:
> http://cr.openjdk.java.net/~jrose/6969574/
> 
> The compilation of invokedynamic needs several small fixes to enable the expected code generation.
> 
> An initial breakage in ciTypeFlow was causing the compiler to deoptimize on dynamic call sites.  Fixing this exposed a couple of other issues.
> 
> Summary of fixes:
> 
> 1. Add missing case for byte_no classification.  (cpCacheOop.hpp)
> 
> 2. Rewrite misleading comment about byte_no.  (cpCacheOop.cpp)
> 
> 3. Pull "signature invoker" for an indy instruction from the correct CP cache field (f1).  (ciEnv.cpp)
> 
> 4. Clarify tests for is_method_handle_adapter vs. is_method_handle_invoke, and assert disjointness.
> (methodOop.cpp, ciMethod.cpp)
> 
> 5. Correct format assertion on ldc.  (methodHandleWalk.cpp)
> 
> The original problem (fixed by step 1) was a broken "is linked" test in ciTypeFlow which always caused a bail-out to the interpreter.
> 
> This made benchmark results somewhat... suboptimal.
> 
> Hat tip to Eric Bodden, who reported this last month.
>   http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-June/001767.html
> 
> -- John


More information about the hotspot-compiler-dev mailing list