[9] RFR (S): 8056926: Improve caching of GuardWithTest combinator
http://cr.openjdk.java.net/~vlivanov/8056926/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8056926 Cache GuardWithTest per erased to basic types signature. GWT shape is made friendly to sharing: * GWT MH is implemented as BMH which stores 3 method handles * LF loads them from the associated MethodHandle Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ "-ea -esa" and COMPILE_THRESHOLD={0,30}. Reviewed-by: vlivanov, ? Contributed-by: john.r.rose@oracle.com Thanks! Best regards, Vladimir Ivanov
On Aug 29, 2014, at 7:20 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
http://cr.openjdk.java.net/~vlivanov/8056926/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8056926
Cache GuardWithTest per erased to basic types signature.
GWT shape is made friendly to sharing: * GWT MH is implemented as BMH which stores 3 method handles * LF loads them from the associated MethodHandle
Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ "-ea -esa" and COMPILE_THRESHOLD={0,30}.
Reviewed-by: vlivanov, ? Contributed-by: john.r.rose@oracle.com
+1 To be on the safe side should a @ForceInline be stuffed on the "selectAlternative" method? Paul.
Thanks, Paul. There's no need to add @ForceInline on selectAlternative. It is used only during LF interpretation. There's an intrinsic for GWT combinator, which encodes it as a branch (see InvokerBytecodeGenerator.emitSelectAlternative). Best regards, Vladimir Ivanov On 9/1/14, 1:48 PM, Paul Sandoz wrote:
On Aug 29, 2014, at 7:20 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
http://cr.openjdk.java.net/~vlivanov/8056926/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8056926
Cache GuardWithTest per erased to basic types signature.
GWT shape is made friendly to sharing: * GWT MH is implemented as BMH which stores 3 method handles * LF loads them from the associated MethodHandle
Testing: jdk/java/lang/invoke, jdk/java/util/streams, nashorn, octane w/ "-ea -esa" and COMPILE_THRESHOLD={0,30}.
Reviewed-by: vlivanov, ? Contributed-by: john.r.rose@oracle.com
+1
To be on the safe side should a @ForceInline be stuffed on the "selectAlternative" method?
Paul.
_______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
On Sep 1, 2014, at 12:29 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
Thanks, Paul.
There's no need to add @ForceInline on selectAlternative. It is used only during LF interpretation. There's an intrinsic for GWT combinator, which encodes it as a branch (see InvokerBytecodeGenerator.emitSelectAlternative).
Ah yes, i forgot about those recently added intrinsics, Paul.
FTR, selectAlternative intrinsic is there from the very beginning. Recent changes improved how intrinsics are represented on LF level + added a bunch of new intrinsics. Best regards, Vladimir Ivanov On 9/1/14, 2:49 PM, Paul Sandoz wrote:
On Sep 1, 2014, at 12:29 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
Thanks, Paul.
There's no need to add @ForceInline on selectAlternative. It is used only during LF interpretation. There's an intrinsic for GWT combinator, which encodes it as a branch (see InvokerBytecodeGenerator.emitSelectAlternative).
Ah yes, i forgot about those recently added intrinsics, Paul.
_______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
participants (2)
-
Paul Sandoz
-
Vladimir Ivanov