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