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
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:

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 hotspot-compiler-dev mailing list