[9] RFR (S): 8057657: Annotate LambdaForm parameters with types
http://cr.openjdk.java.net/~vlivanov/8057657/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8057657 Add ability to annotate LambdaForm parameters with their types. Type info could be useful during LambdaForm compilation to produce better bytecode. 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 Sep 5, 2014, at 12:12 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
http://cr.openjdk.java.net/~vlivanov/8057657/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8057657
- BoundMethodHandle 57 assert(speciesData() == speciesData(form)); I am missing some context here as to how that assert would pass for anything other than Species_L, namely for sub-classes of BoundMethodHandle generated by generateConcreteBMHClass how does that assert return true? 153 public static SpeciesData speciesData(LambdaForm form) { Minor point. Could be private (since only used by the assert in the constructor), or package private if the intention is for it to be used by other j.l.i classes in the future. Paul.
Add ability to annotate LambdaForm parameters with their types. Type info could be useful during LambdaForm compilation to produce better bytecode.
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
http://cr.openjdk.java.net/~vlivanov/8057657/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8057657
- BoundMethodHandle
57 assert(speciesData() == speciesData(form));
I am missing some context here as to how that assert would pass for anything other than Species_L, namely for sub-classes of BoundMethodHandle generated by generateConcreteBMHClass how does that assert return true? Good catch, Paul. This assert should go with new bind implementation. Moved the assert & speciesData(LambdaForm) from this change to 8057042 [1]. Updated webrev in place.
153 public static SpeciesData speciesData(LambdaForm form) {
Minor point. Could be private (since only used by the assert in the constructor), or package private if the intention is for it to be used by other j.l.i classes in the future. Made the method package-private. It is also used in LambdaFormEditor ( see oldSpeciesData() [1]).
Best regards, Vladimir Ivanov [1] http://cr.openjdk.java.net/~vlivanov/8057042/webrev.00/
Paul.
Add ability to annotate LambdaForm parameters with their types. Type info could be useful during LambdaForm compilation to produce better bytecode.
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
_______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
+1 to both. On Sep 9, 2014, at 3:22 PM, Vladimir Ivanov <vladimir.x.ivanov@oracle.com> wrote:
http://cr.openjdk.java.net/~vlivanov/8057657/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8057657
- BoundMethodHandle
57 assert(speciesData() == speciesData(form));
I am missing some context here as to how that assert would pass for anything other than Species_L, namely for sub-classes of BoundMethodHandle generated by generateConcreteBMHClass how does that assert return true? Good catch, Paul. This assert should go with new bind implementation. Moved the assert & speciesData(LambdaForm) from this change to 8057042 [1]. Updated webrev in place.
Ok, i see how it wires up now, plus i suspected it might be some patch cross talk. Paul.
153 public static SpeciesData speciesData(LambdaForm form) {
Minor point. Could be private (since only used by the assert in the constructor), or package private if the intention is for it to be used by other j.l.i classes in the future. Made the method package-private. It is also used in LambdaFormEditor ( see oldSpeciesData() [1]).
Best regards, Vladimir Ivanov
participants (2)
-
Paul Sandoz
-
Vladimir Ivanov