[9] RFR (M): 8037209: Improvements and cleanups to bytecode assembly for lambda forms (original) (raw)

Marcus Lagergren marcus.lagergren at oracle.com
Fri Mar 14 13:25:47 UTC 2014


To get into this faster it would be nice if the new private fields (or the existing ones for that matter) had a comment describing what they were for, e.g.

I can figure it out from the code, but it would have been a better starting point.

If that there are new apparent performance regressions caused by, e.g. profile pollusion from reusing existing method handles, I am fine with this. +1

/M

On 14 Mar 2014, at 14:17, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:

Paul,

You are looking at the other fix (8037210). The correct link is [1]. Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~vlivanov/8037209/webrev.00/src/share/classes/java/lang/invoke/MethodHandleImpl.java.sdiff.html On 3/14/14 4:38 PM, Paul Sandoz wrote:

On Mar 14, 2014, at 1:19 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com <mailto:vladimir.x.ivanov at oracle.com>> wrote:

FYI, this change isn't limited to only bytecode assembly improvements, but also contains caching of lambda forms for setters/getter of typed arrays.

Do you mean for MethodHandles.arrayElementGetter/Setter? If so i don't see relevant changes in: http://cr.openjdk.java.net/~vlivanov/8037210/webrev.00/src/share/classes/java/lang/invoke/MethodHandleImpl.java.sdiff.html to say MethodHandleImpl.ArrayAccessor: static final class ArrayAccessor { /// Support for array element access static final HashMap<Class<?>, MethodHandle> GETTERCACHE = new HashMap<>(); // TODO use it static final HashMap<Class<?>, MethodHandle> SETTERCACHE = new HashMap<>(); // TODO use it Paul. If there are any objections, I can back the caching logic out and include it into one of upcoming changes. Best regards, Vladimir Ivanov On 3/14/14 3:45 PM, Vladimir Ivanov wrote: http://cr.openjdk.java.net/~vlivanov/8037209/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8037209 440 lines changed: 313 ins; 67 del; 60 mod

This is a cleanup of JSR292 code to improve bytecode assembly code for lambda forms. Contributed-by: john.r.rose at oracle.com Testing: jdk/java/{lang/invoke,util}, vm.mlvm.testlist, nashorn, jruby Configs: -ea -esa -Xverify:all -D...COMPILETHRESHOLD={0,30} -D...PROFILELEVEL={0,1} Best regards, Vladimir Ivanov


mlvm-dev mailing list mlvm-dev at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


mlvm-dev mailing list mlvm-dev at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the core-libs-dev mailing list