review request (L): JDK changes for 7023639: JSR 292 method handle invocation needs a fast path for compiled code
John Rose
john.r.rose at oracle.com
Fri Jul 13 02:41:21 PDT 2012
On Jul 11, 2012, at 5:53 PM, John Rose wrote:
> As some of you have noticed, Chris Thalinger, Michael Haupt, and I have been working on the mlvm patches [1] for JEP-160 [2] for several months. These changes make method handles more optimizable. They refactor lots of "magic" out of the JVM and into more manageable Java code.
> …
> An associated webrev for hotspot-comp/jdk/ will be posted soon; it is already present on mlvm-dev for the curious to examine. (This change set also deletes a lot of old code.)
Here is that webrev:
http://cr.openjdk.java.net/~jrose/7023639/webrev.jdk.00/
These are the changes to JDK code that accompany the JVM changes already under review.
There are 2900 LOC deleted, and 7000 LOC added. Key changes:
- method handle behavior is fully represented by LambdaForm objects
- chained method handles (including "adapter method handles") are gone
- an ASM-based bytecode spinner compiles LambdaForms when they warm up
- bound method handles are compactly represented without boxing
- the private symbol-resolution interface to the JVM (MemberName) is improved
- unit tests have more systematic coverage
- a number of minor bugs are fixed
This is implementation work. No public Java APIs are changed, although the javadoc is slightly edited for clarity.
Please have a look.
— John
More information about the mlvm-dev
mailing list