JDK-6829187 : compiler optimizations required for JSR 292
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2009-04-11
  • Updated: 2010-04-02
  • Resolved: 2010-01-19
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u21Fixed 7Fixed hs17Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
The JITs (C1, C2) must not bail out to the interpreter when they encounter an invokedynamic call site.  Rather, they must load the target method from the CallSite and perform a MethodHandle.invoke call on it, and possibly also call the bootstrap method.  The target method, if available at compile time, should be optimistically inlined, as if for a bimorphic call site.  Bail-outs to the interpreter should be limited to deoptimizations, as with other dynamically typed call sites.

The structure of the target method handle should be reified to the compiler as a "synthetic method", a ciMethod or even a real methodOop.  In this way the usual bytecode parser can be used to generate the IR for it.  This design will also allow method handles to be shrink-wrapped when necessary, as (for example) in interface injection.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/97125851f396
05-01-2010