From darcy at openjdk.org Thu Aug 1 00:46:53 2024 From: darcy at openjdk.org (Joe Darcy) Date: Thu, 1 Aug 2024 00:46:53 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 Message-ID: Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. ------------- Commit messages: - JDK-8337605: Update description of constants in Float16 Changes: https://git.openjdk.org/valhalla/pull/1191/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1191&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8337605 Stats: 37 lines in 1 file changed: 35 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1191.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1191/head:pull/1191 PR: https://git.openjdk.org/valhalla/pull/1191 From darcy at openjdk.org Thu Aug 1 06:26:57 2024 From: darcy at openjdk.org (Joe Darcy) Date: Thu, 1 Aug 2024 06:26:57 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v3] In-Reply-To: References: Message-ID: <9l9APlMaKnTmHfe_cpCcy37kqZmeqGAc7PG5-N6XX3g=.ec97dcce-21c4-4613-8258-d57c27afe7a3@github.com> > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: Added testing for valueOf(double). ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/ce044ce2..ea5f4bf0 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=02 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=01-02 Stats: 39 lines in 1 file changed: 39 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From darcy at openjdk.org Thu Aug 1 06:40:00 2024 From: darcy at openjdk.org (Joe Darcy) Date: Thu, 1 Aug 2024 06:40:00 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v4] In-Reply-To: References: Message-ID: > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: Add testing of neighbors of half-way cases for double -> Float16 conversion. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/ea5f4bf0..46a84462 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=03 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=02-03 Stats: 13 lines in 1 file changed: 9 ins; 0 del; 4 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From thartmann at openjdk.org Thu Aug 1 09:08:47 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Thu, 1 Aug 2024 09:08:47 GMT Subject: [lworld] Integrated: 8325106: [lworld] Part 3: Prepare compiler implementation and tests for JEP 401 In-Reply-To: References: Message-ID: <61RlcNR1GKhvzrYGrqQKuuONmFUXyGedY3mRmFuT-AI=.162c0e07-af22-41f2-9852-08eeed136cda@github.com> On Wed, 31 Jul 2024 13:32:35 GMT, Tobias Hartmann wrote: > A large number of leftover cleanups, enhancements and smaller fixes from the JEP 401 transition changes ([JDK-8324949](https://bugs.openjdk.org/browse/JDK-8324949), [JDK-8325660](https://bugs.openjdk.org/browse/JDK-8325660) and [JDK-8333037](https://bugs.openjdk.org/browse/JDK-8333037)). There are a few remaining issues but I filed separate bugs for those. > > Thanks, > Tobias This pull request has now been integrated. Changeset: 39b4d217 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/39b4d217b2815583ae515f2b07b6eebe6eb02550 Stats: 359 lines in 25 files changed: 72 ins; 187 del; 100 mod 8325106: [lworld] Part 3: Prepare compiler implementation and tests for JEP 401 ------------- PR: https://git.openjdk.org/valhalla/pull/1189 From dsimms at openjdk.org Thu Aug 1 09:42:43 2024 From: dsimms at openjdk.org (David Simms) Date: Thu, 1 Aug 2024 09:42:43 GMT Subject: [lworld] RFR: Merge jdk Message-ID: Merge tag jdk-23+12 ------------- Commit messages: - Merge jdk - 8324799: Use correct extension for C++ test headers - 8318302: ThreadCountLimit.java failed with "Native memory allocation (mprotect) failed to protect 16384 bytes for memory to guard stack pages" - 8326953: Race in creation of win-exports.def with static-libs - 8326694: Defer setting of autocapitalize attribute - 8326687: Inconsistent use of "ZIP", "Zip" and "zip" in java.util.zip/jar zipfs javadoc - 8324969: C2: prevent elimination of unbalanced coarsened locking regions - 8326763: Consolidate print methods in ContiguousSpace - 8325762: Use PassFailJFrame.Builder.splitUI() in PrintLatinCJKTest.java - 8326892: Remove unused PSAdaptiveSizePolicyResizeVirtualSpaceAlot develop flag - ... and 75 more: https://git.openjdk.org/valhalla/compare/8aa58dae...963e8d17 The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=1192&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=valhalla&pr=1192&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/1192/files Stats: 13054 lines in 1126 files changed: 7079 ins; 2479 del; 3496 mod Patch: https://git.openjdk.org/valhalla/pull/1192.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1192/head:pull/1192 PR: https://git.openjdk.org/valhalla/pull/1192 From fparain at openjdk.org Thu Aug 1 13:11:41 2024 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 1 Aug 2024 13:11:41 GMT Subject: [lworld] RFR: 8337585: [lworld] VM crashes if primitive type signatures are present in the LoadableDescriptors attribute In-Reply-To: References: Message-ID: On Wed, 31 Jul 2024 17:29:24 GMT, Frederic Parain wrote: > Prevent VM crash when LoadableDescriptor attribute contains signature of primitive types. Thank you for the review Coleen. Fred ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1190#issuecomment-2262997585 From fparain at openjdk.org Thu Aug 1 13:11:41 2024 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 1 Aug 2024 13:11:41 GMT Subject: [lworld] Integrated: 8337585: [lworld] VM crashes if primitive type signatures are present in the LoadableDescriptors attribute In-Reply-To: References: Message-ID: On Wed, 31 Jul 2024 17:29:24 GMT, Frederic Parain wrote: > Prevent VM crash when LoadableDescriptor attribute contains signature of primitive types. This pull request has now been integrated. Changeset: d14e3757 Author: Frederic Parain URL: https://git.openjdk.org/valhalla/commit/d14e3757532422b5d611470472d80f617d068153 Stats: 116 lines in 3 files changed: 115 ins; 0 del; 1 mod 8337585: [lworld] VM crashes if primitive type signatures are present in the LoadableDescriptors attribute Reviewed-by: coleenp ------------- PR: https://git.openjdk.org/valhalla/pull/1190 From darcy at openjdk.org Thu Aug 1 20:14:19 2024 From: darcy at openjdk.org (Joe Darcy) Date: Thu, 1 Aug 2024 20:14:19 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v5] In-Reply-To: References: Message-ID: > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: Add tests for subnromal results. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/46a84462..32bb73a6 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=04 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=03-04 Stats: 11 lines in 1 file changed: 8 ins; 2 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From darcy at openjdk.org Thu Aug 1 20:20:48 2024 From: darcy at openjdk.org (Joe Darcy) Date: Thu, 1 Aug 2024 20:20:48 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma In-Reply-To: References: Message-ID: On Wed, 31 Jul 2024 21:20:53 GMT, Joe Darcy wrote: >> Adding comments and test cases for Float16.fma. > > Getting back to this PR, I pushed an update to the explanation about why Float16 fma is double arithmetic is sufficient and an initial update of the tests. > > More test augmentation as previously discussed on the way. > Hi @jddarcy , Some queries / comments. Hi @jatin-bhateja , Please re-review the current state of the PR and if it looks good, I'm integrate it for sponsorship. Thanks. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1143#issuecomment-2263909375 From darcy at openjdk.org Fri Aug 2 01:52:13 2024 From: darcy at openjdk.org (Joe Darcy) Date: Fri, 2 Aug 2024 01:52:13 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v6] In-Reply-To: References: Message-ID: > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: Fix typo in test comments. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/32bb73a6..f3ceea16 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=05 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=04-05 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From dsimms at openjdk.org Fri Aug 2 06:02:48 2024 From: dsimms at openjdk.org (David Simms) Date: Fri, 2 Aug 2024 06:02:48 GMT Subject: [lworld] Integrated: Merge jdk In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 09:36:15 GMT, David Simms wrote: > Merge tag jdk-23+12 This pull request has now been integrated. Changeset: 663aff21 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/663aff21abe9a9dd8d5f89bb20be14e8046f730a Stats: 13054 lines in 1126 files changed: 7079 ins; 2479 del; 3496 mod Merge jdk Merge jdk-23+12 ------------- PR: https://git.openjdk.org/valhalla/pull/1192 From forax at univ-mlv.fr Fri Aug 2 14:01:28 2024 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 2 Aug 2024 16:01:28 +0200 (CEST) Subject: The annotation ImplicitlyConstructible does not work with a record Message-ID: <1298469661.19577436.1722607288520.JavaMail.zimbra@univ-eiffel.fr> Hello, it seems that the annotation ImplicitlyConstructible does not work with a record (it works with a class) ? regards, R?mi --- @jdk.internal.vm.annotation.ImplicitlyConstructible public value class Dummy { public static void main(String[] args) { System.out.println(jdk.internal.value.ValueClass.isImplicitlyConstructible(Dummy.class)); // true } } @jdk.internal.vm.annotation.ImplicitlyConstructible public value record Dummy() { public static void main(String[] args) { System.out.println(jdk.internal.value.ValueClass.isImplicitlyConstructible(Dummy.class)); // false } } From andvasp at gmail.com Fri Aug 2 20:36:25 2024 From: andvasp at gmail.com (Anderson Vasconcelos Pires) Date: Fri, 2 Aug 2024 17:36:25 -0300 Subject: Feedback running a spring boot application without modification to use value class Message-ID: Hi guys, I just ran a spring boot application without modification to use the value class. The application runs normally. I just found the error below. I am not saying that this should not happen. Specifically because the method is marked for removal (https://openjdk.org/jeps/471). Caused by: java.lang.UnsupportedOperationException: can't get field offset on a value class: private final strictfp long java.lang.Long.value at jdk.unsupported at 23-valhalla/sun.misc.Unsafe.objectFieldOffset(Unsafe.java:659) ~[?:?] at org.ehcache.sizeof.impl.UnsafeSizeOf.sizeOf(UnsafeSizeOf.java:120) ~[ehcache-3.10.8-jakarta.jar:3.10.8] OS: Windows Server Compiled with Jdk 17 Run with --enable-preview Dependencies: org.springframework:spring-jdbc:6.1.3 org.springframework.security:spring-security-test:6.2.1 org.springframework.security:spring-security-ldap:6.2.1 org.springframework.ldap:spring-ldap-core:3.2.1 org.springframework.boot:spring-boot-starter-web:3.2.2 org.springframework.boot:spring-boot-starter-tomcat:3.2.2 org.springframework.boot:spring-boot-starter-test:3.2.2 org.springframework.boot:spring-boot-starter-security:3.2.2 org.springframework.boot:spring-boot-starter-mail:3.2.2 org.springframework.boot:spring-boot-starter-log4j2:3.2.2 org.springframework.boot:spring-boot-starter-data-jpa:3.2.2 org.springframework.boot:spring-boot-starter-cache:3.2.2 org.springframework.boot:spring-boot-starter:3.2.2 org.springframework.boot:spring-boot-starter org.hibernate.orm:hibernate-core:6.4.1.Final org.hibernate.orm:hibernate-jcache:6.4.1.Final org.hibernate.orm:hibernate-envers:6.4.1.Final org.snmp4j:snmp4j:3.7.7 org.samba.jcifs:jcifs:1.3.18-kohsuke-1 org.openjdk.nashorn:nashorn-core:15.4 org.glassfish.jaxb:txw2:4.0.4 org.glassfish.jaxb:jaxb-runtime:4.0.4 org.ehcache:ehcache:3.10.8 org.apache.tomcat:annotations-api:6.0.53 org.apache.poi:poi-ooxml:5.3.0 junit:junit:4.13.2 javax.cache:cache-api:1.1.1 io.grpc:grpc-stub:1.61.1 io.grpc:grpc-protobuf:1.61.1 io.grpc:grpc-netty-shaded:1.61.1 com.oracle.database.jdbc:ojdbc11:21.9.0.0 com.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11 com.lmax:disruptor:3.4.4 com.h2database:h2:2.2.224 com.google.zxing:javase:3.5.3 com.google.zxing:core:3.5.3 com.google.guava:guava:33.0.0-jre Best regards, Anderson. -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian.goetz at oracle.com Sat Aug 3 00:23:08 2024 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 2 Aug 2024 20:23:08 -0400 Subject: Feedback running a spring boot application without modification to use value class In-Reply-To: References: Message-ID: <7e75dadc-490f-414b-a14a-5338b1161823@oracle.com> ehcache has several tactics for estimating the size of cached objects, which it uses for eviction calculations.? One of them uses Unsafe, and it appears to be using calls that don't work on value objects (and these calls are deprecated.)? It claims these tactics are pluggable. The solution is to reconfigure ehcache to use a better-behaved sizeof estimator.? There's some documentation (not much, though) here: https://github.com/ehcache/sizeof?tab=readme-ov-file On 8/2/2024 4:36 PM, Anderson Vasconcelos Pires wrote: > Hi guys, > > I just ran a spring boot application without modification to use the > value class. > > The application runs normally. I just found the error below. I am not > saying that this should not happen. Specifically because the method is > marked for removal (https://openjdk.org/jeps/471). > > Caused by: java.lang.UnsupportedOperationException: can't get field > offset on a value class: private final strictfp long java.lang.Long.value > at > jdk.unsupported at 23-valhalla/sun.misc.Unsafe.objectFieldOffset(Unsafe.java:659) > ~[?:?] > at org.ehcache.sizeof.impl.UnsafeSizeOf.sizeOf(UnsafeSizeOf.java:120) > ~[ehcache-3.10.8-jakarta.jar:3.10.8] > > OS: Windows Server > Compiled?with Jdk 17 > Run with --enable-preview > > Dependencies: > org.springframework:spring-jdbc:6.1.3 > org.springframework.security:spring-security-test:6.2.1 > org.springframework.security:spring-security-ldap:6.2.1 > org.springframework.ldap:spring-ldap-core:3.2.1 > org.springframework.boot:spring-boot-starter-web:3.2.2 > org.springframework.boot:spring-boot-starter-tomcat:3.2.2 > org.springframework.boot:spring-boot-starter-test:3.2.2 > org.springframework.boot:spring-boot-starter-security:3.2.2 > org.springframework.boot:spring-boot-starter-mail:3.2.2 > org.springframework.boot:spring-boot-starter-log4j2:3.2.2 > org.springframework.boot:spring-boot-starter-data-jpa:3.2.2 > org.springframework.boot:spring-boot-starter-cache:3.2.2 > org.springframework.boot:spring-boot-starter:3.2.2 > org.springframework.boot:spring-boot-starter > org.hibernate.orm:hibernate-core:6.4.1.Final > org.hibernate.orm:hibernate-jcache:6.4.1.Final > org.hibernate.orm:hibernate-envers:6.4.1.Final > org.snmp4j:snmp4j:3.7.7 > org.samba.jcifs:jcifs:1.3.18-kohsuke-1 > org.openjdk.nashorn:nashorn-core:15.4 > org.glassfish.jaxb:txw2:4.0.4 > org.glassfish.jaxb:jaxb-runtime:4.0.4 > org.ehcache:ehcache:3.10.8 > org.apache.tomcat:annotations-api:6.0.53 > org.apache.poi:poi-ooxml:5.3.0 > junit:junit:4.13.2 > javax.cache:cache-api:1.1.1 > io.grpc:grpc-stub:1.61.1 > io.grpc:grpc-protobuf:1.61.1 > io.grpc:grpc-netty-shaded:1.61.1 > com.oracle.database.jdbc:ojdbc11:21.9.0.0 > com.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11 > com.lmax:disruptor:3.4.4 > com.h2database:h2:2.2.224 > com.google.zxing:javase:3.5.3 > com.google.zxing:core:3.5.3 > com.google.guava:guava:33.0.0-jre > > Best regards, > Anderson. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dsimms at openjdk.org Mon Aug 5 17:32:34 2024 From: dsimms at openjdk.org (David Simms) Date: Mon, 5 Aug 2024 17:32:34 GMT Subject: [lworld] Integrated: Merge jdk Message-ID: Merge tag jdk-23+13 ------------- Commit messages: - Merge jdk - 8327172: C2 SuperWord: data node in loop has no input in loop: replace assert with bailout - 8327379: Make TimeLinearScan a develop flag - 8327434: Test java/util/PluggableLocale/TimeZoneNameProviderTest.java timed out - 8325532: serviceability/dcmd/compiler/PerfMapTest.java leaves created files in the /tmp dir. - 8327173: HotSpot Style Guide needs update regarding nullptr vs NULL - 8325878: Require minimum Clang version 13 - 8325880: Require minimum Open XL C/C++ version 17.1.1 - 8326718: Test java/util/Formatter/Padding.java should timeout on large inputs before fix in JDK-8299677 - 8326983: Unused operands reported after JDK-8326135 - ... and 77 more: https://git.openjdk.org/valhalla/compare/663aff21...b9490b3e The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=1193&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=valhalla&pr=1193&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/1193/files Stats: 74644 lines in 809 files changed: 3597 ins; 69141 del; 1906 mod Patch: https://git.openjdk.org/valhalla/pull/1193.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1193/head:pull/1193 PR: https://git.openjdk.org/valhalla/pull/1193 From dsimms at openjdk.org Mon Aug 5 17:32:35 2024 From: dsimms at openjdk.org (David Simms) Date: Mon, 5 Aug 2024 17:32:35 GMT Subject: [lworld] Integrated: Merge jdk In-Reply-To: References: Message-ID: On Mon, 5 Aug 2024 17:22:00 GMT, David Simms wrote: > Merge tag jdk-23+13 This pull request has now been integrated. Changeset: e45febcd Author: David Simms URL: https://git.openjdk.org/valhalla/commit/e45febcdb3f6bd8ca139f6c12126d52968c7c2f9 Stats: 74644 lines in 809 files changed: 3597 ins; 69141 del; 1906 mod Merge jdk Merge tag jdk-23+13 ------------- PR: https://git.openjdk.org/valhalla/pull/1193 From forax at univ-mlv.fr Mon Aug 5 18:07:41 2024 From: forax at univ-mlv.fr (Remi Forax) Date: Mon, 5 Aug 2024 20:07:41 +0200 (CEST) Subject: javap has trouble with field annotated with ACC_STRICT Message-ID: <1735983770.23526351.1722881261263.JavaMail.zimbra@univ-eiffel.fr> Hello, before i forget, the javap version of the early access of Valhalla currently does not support field with the ACC_STRICT flag set. $JAVA_HOME/bin/javap -private target/classes/com/github/forax/civilizer/value/Complex.class Compiled from "Complex.java" public final value class com.github.forax.civilizer.value.Complex { Error: Fatal error: Unmatched bit position 0x800 for location FIELD regard, R?mi From chen.l.liang at oracle.com Tue Aug 6 03:27:08 2024 From: chen.l.liang at oracle.com (Chen Liang) Date: Tue, 6 Aug 2024 03:27:08 +0000 Subject: javap has trouble with field annotated with ACC_STRICT In-Reply-To: <1735983770.23526351.1722881261263.JavaMail.zimbra@univ-eiffel.fr> References: <1735983770.23526351.1722881261263.JavaMail.zimbra@univ-eiffel.fr> Message-ID: Hi, According to this issue below, javap would only decompile value classes with --enable-preview VM option. [JDK-8333435] [lworld] javap prints strict field incorrectly - Java Bug System (openjdk.org) So we need to launch with "javap -J--enable-preview? TargetClass" P.S. Cc'ing Ethan as Ethan encountered the same problem in JVMLS today. Chen Liang ________________________________ From: valhalla-dev on behalf of Remi Forax Sent: Monday, August 5, 2024 1:07 PM To: valhalla-dev Subject: javap has trouble with field annotated with ACC_STRICT Hello, before i forget, the javap version of the early access of Valhalla currently does not support field with the ACC_STRICT flag set. $JAVA_HOME/bin/javap -private target/classes/com/github/forax/civilizer/value/Complex.class Compiled from "Complex.java" public final value class com.github.forax.civilizer.value.Complex { Error: Fatal error: Unmatched bit position 0x800 for location FIELD regard, R?mi -------------- next part -------------- An HTML attachment was scrubbed... URL: From bkilambi at openjdk.org Tue Aug 6 08:55:42 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 6 Aug 2024 08:55:42 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: References: Message-ID: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> > This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. > > Tested JTREG tests - > hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: Add MulHF::Ideal() and MulHF Idealization tests ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1175/files - new: https://git.openjdk.org/valhalla/pull/1175/files/525c3530..914dfc24 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1175&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1175&range=00-01 Stats: 88 lines in 3 files changed: 85 ins; 0 del; 3 mod Patch: https://git.openjdk.org/valhalla/pull/1175.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1175/head:pull/1175 PR: https://git.openjdk.org/valhalla/pull/1175 From bkilambi at openjdk.org Tue Aug 6 09:02:44 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 6 Aug 2024 09:02:44 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: <31RCTouYHyzuCeq2DzhlXeh_0jGeqzjFoNwmPJ64H-w=.0b943171-703b-4d62-b362-263b8eac3977@github.com> References: <31RCTouYHyzuCeq2DzhlXeh_0jGeqzjFoNwmPJ64H-w=.0b943171-703b-4d62-b362-263b8eac3977@github.com> Message-ID: On Wed, 31 Jul 2024 10:11:29 GMT, Jatin Bhateja wrote: >> Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: >> >> Add MulHF::Ideal() and MulHF Idealization tests > > src/hotspot/share/opto/mulnode.hpp line 149: > >> 147: // Multiply 2 half floats >> 148: class MulHFNode : public MulFNode { >> 149: public: > > While its good to use MulFNode constant folding (Value) routines and generic Ideal transforms, we should skip any specific Idealization transformations which may end up generating purely [floating point IR](https://github.com/openjdk/valhalla/blob/lworld%2Bfp16/src/hotspot/share/opto/mulnode.cpp#L547) Hi @jatin-bhateja , I have made the changes to MulHF::Ideal() as suggested. This avoids generation of pure Floating point IR during Ideal optimizations of MulHF. I have checked other binary operations as well to make sure we are not generating any pure floating point IR during optimization. I can see one in DivFNode::Ideal() - https://github.com/openjdk/valhalla/blob/e45febcdb3f6bd8ca139f6c12126d52968c7c2f9/src/hotspot/share/opto/divnode.cpp#L749 which generates MulFNode when dividing with 2. I tried this specific pattern for half float and it generates correct answer but performs the entire optimization in float IR (the input FP16 value is converted to FP32). For now, I don't think we can change this as the constant value 2 is interpreted as a TypeF floating point value and we do not have the corresponding type for Float16 at the moment. The resultant output is of course correct and thus I have not made any changes to it. Other binary operations seem to be fine to be performed on Float16 values as well. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1175#discussion_r1705175485 From bkilambi at openjdk.org Tue Aug 6 10:04:38 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 6 Aug 2024 10:04:38 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: <32Vkgm5CQCiJ2GYpqU37pW9lX6F2jp_ugQfULA8jgmE=.bbcb0465-208d-4397-a884-abf679fa86bb@github.com> On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. Looks good to me. ------------- Marked as reviewed by bkilambi (no project role). PR Review: https://git.openjdk.org/valhalla/pull/1191#pullrequestreview-2220855745 From chagedorn at openjdk.org Tue Aug 6 11:14:20 2024 From: chagedorn at openjdk.org (Christian Hagedorn) Date: Tue, 6 Aug 2024 11:14:20 GMT Subject: [lworld] RFR: 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 Message-ID: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> In the merge of JDK-8325746 for tag jdk-23+12, I've applied just a minimal refactoring to get things to work with as few changes as possible in Valhalla and decided to make a full refactoring separately with this patch. This patch includes the following: - Improved/updated comments - New `UnswitchCandidate` class: - Since we can have multiple unswitch candidates with flat array checks, I've introduced a new class `UnswitchCandidate` which finds either a unique candidate or a list of flat array checks which can also be queried from this class. - Offers methods `update_in_false/true_path_loop()` methods to remove the dominated unswitch candidates (previously in `OriginalLoop::remove_unswitch_candidate_from_loops()` - Offers method `merge_flat_array_checks()` to create a merged flat array check bool (previously in `UnswitchedLoopSelector::find_unswitch_candidate()`) - Updated `UnswitchedLoopSelector` class: - Now only responsible for creating the loop unswitching loop selector and not for finding the unswitch candidate - this is passed into the class now. - Clean up `PhaseIdealLoop::find_unswitch_candidates()` - Clean up printing for `TraceLoopOpts` and `TraceLoopUnswitching`. Now the details are only guarded with `TraceLoopUnswitching` to reduce the noise with `TraceLoopOpts`. Example output with `TraceLoopUnswitching`: Loop Unswitching: - Unswitch-Candidate-If: 519 If - Loop-Selector-If: 2094 If - True-Path-Loop (=Orig): 1346 Loop - False-Path-Loop (=Clone): 2221 Loop - Unswitched Flat Array Checks: - 519 If -> 2226 If - 922 If -> 2208 If - 685 If -> 2359 If - 580 If -> 2388 If Thanks, Christian ------------- Commit messages: - 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 Changes: https://git.openjdk.org/valhalla/pull/1194/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1194&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8337747 Stats: 336 lines in 2 files changed: 196 ins; 99 del; 41 mod Patch: https://git.openjdk.org/valhalla/pull/1194.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1194/head:pull/1194 PR: https://git.openjdk.org/valhalla/pull/1194 From chagedorn at openjdk.org Tue Aug 6 11:14:21 2024 From: chagedorn at openjdk.org (Christian Hagedorn) Date: Tue, 6 Aug 2024 11:14:21 GMT Subject: [lworld] RFR: 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 In-Reply-To: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> References: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> Message-ID: On Tue, 6 Aug 2024 11:05:42 GMT, Christian Hagedorn wrote: > In the merge of JDK-8325746 for tag jdk-23+12, I've applied just a minimal refactoring to get things to work with as few changes as possible in Valhalla and decided to make a full refactoring separately with this patch. > > This patch includes the following: > - Improved/updated comments > - New `UnswitchCandidate` class: > - Since we can have multiple unswitch candidates with flat array checks, I've introduced a new class `UnswitchCandidate` which finds either a unique candidate or a list of flat array checks which can also be queried from this class. > - Offers methods `update_in_false/true_path_loop()` methods to remove the dominated unswitch candidates (previously in `OriginalLoop::remove_unswitch_candidate_from_loops()` > - Offers method `merge_flat_array_checks()` to create a merged flat array check bool (previously in `UnswitchedLoopSelector::find_unswitch_candidate()`) > - Updated `UnswitchedLoopSelector` class: > - Now only responsible for creating the loop unswitching loop selector and not for finding the unswitch candidate - this is passed into the class now. > - Clean up `PhaseIdealLoop::find_unswitch_candidates()` > - Clean up printing for `TraceLoopOpts` and `TraceLoopUnswitching`. Now the details are only guarded with `TraceLoopUnswitching` to reduce the noise with `TraceLoopOpts`. Example output with `TraceLoopUnswitching`: > > Loop Unswitching: > - Unswitch-Candidate-If: 519 If > - Loop-Selector-If: 2094 If > - True-Path-Loop (=Orig): 1346 Loop > - False-Path-Loop (=Clone): 2221 Loop > - Unswitched Flat Array Checks: > - 519 If -> 2226 If > - 922 If -> 2208 If > - 685 If -> 2359 If > - 580 If -> 2388 If > > > Thanks, > Christian src/hotspot/share/opto/loopUnswitch.cpp line 170: > 168: } > 169: } > 170: return unswitch_candidate; Extracted to `collect_flat_array_checks()` src/hotspot/share/opto/loopUnswitch.cpp line 210: > 208: return unswitch_candidate; > 209: } > 210: Now in `UnswitchCandidate::find_unswitch_candidate()`. src/hotspot/share/opto/loopUnswitch.cpp line 221: > 219: // (i.e. a fast path loop). > 220: // - False-path-loop: We keep all flat array checks in this loop (i.e. a slow path loop). > 221: class UnswitchCandidate : public StackObj { New class as mentioned in PR description. src/hotspot/share/opto/loopUnswitch.cpp line 237: > 235: } > 236: } > 237: Now in `UnswitchCandidate::merge_flat_array_checks()` src/hotspot/share/opto/loopUnswitch.cpp line 347: > 345: } > 346: } > 347: Now in `UnswitchCandidate::update_in_true/false_path_loop()` src/hotspot/share/opto/loopUnswitch.cpp line 434: > 432: unswitch_iffs.at(i)->dump(3); > 433: tty->cr(); > 434: } Removed to reduce noise in favor of `TraceLoopUnswitching` (see `PhaseIdealLoop::trace_loop_unswitching_result()`). src/hotspot/share/opto/loopUnswitch.cpp line 459: > 457: cloned_unswitch_iff->_idx, cloned_unswitch_iff->Name()); > 458: } > 459: } Extracted to `UnswitchCandidate::trace_flat_array_checks()` ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705344490 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705345564 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705344724 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705345973 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705346536 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705347380 PR Review Comment: https://git.openjdk.org/valhalla/pull/1194#discussion_r1705347789 From rgiulietti at openjdk.org Tue Aug 6 14:37:38 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Tue, 6 Aug 2024 14:37:38 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. LGTM ------------- Marked as reviewed by rgiulietti (no project role). PR Review: https://git.openjdk.org/valhalla/pull/1191#pullrequestreview-2221499225 From duke at openjdk.org Tue Aug 6 14:40:43 2024 From: duke at openjdk.org (duke) Date: Tue, 6 Aug 2024 14:40:43 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. @jddarcy Your change (at version 9fd1323788788efb61d2fb65d8ae8f8df8662edf) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1191#issuecomment-2271459802 From jbhateja at openjdk.org Thu Aug 8 02:51:44 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Thu, 8 Aug 2024 02:51:44 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> References: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> Message-ID: On Tue, 6 Aug 2024 08:55:42 GMT, Bhavana Kilambi wrote: >> This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. >> >> Tested JTREG tests - >> hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. > > Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: > > Add MulHF::Ideal() and MulHF Idealization tests Marked as reviewed by jbhateja (Committer). Please address the closing comments and integrate. Patch looks good to me. Will add x86 backend support for newly added intrinsic. test/hotspot/jtreg/compiler/c2/irTests/MulHFNodeIdealizationTests.java line 60: > 58: public void test1() { > 59: dst = Float16.multiply(src, Float16.valueOf(2)); > 60: } 2 -> 2.0f test/hotspot/jtreg/compiler/c2/irTests/MulHFNodeIdealizationTests.java line 64: > 62: @Check(test="test1") > 63: public void checkTest1() { > 64: Float16 expected = Float16.valueOf(src.floatValue() * (float) 2); Same as above ------------- PR Review: https://git.openjdk.org/valhalla/pull/1175#pullrequestreview-2226486828 PR Comment: https://git.openjdk.org/valhalla/pull/1175#issuecomment-2274851367 PR Review Comment: https://git.openjdk.org/valhalla/pull/1175#discussion_r1708252301 PR Review Comment: https://git.openjdk.org/valhalla/pull/1175#discussion_r1708256373 From bkilambi at openjdk.org Thu Aug 8 09:47:24 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Thu, 8 Aug 2024 09:47:24 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v3] In-Reply-To: References: Message-ID: <65-Peuook6iPy6Blg5-1w7Oe0wQQoh4YcJCgb58mfRw=.35e1d139-a913-4862-90f2-eaa703d29e6c@github.com> > This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. > > Tested JTREG tests - > hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: Address review comments ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1175/files - new: https://git.openjdk.org/valhalla/pull/1175/files/914dfc24..b58c7376 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1175&range=02 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1175&range=01-02 Stats: 3 lines in 2 files changed: 1 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1175.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1175/head:pull/1175 PR: https://git.openjdk.org/valhalla/pull/1175 From bkilambi at openjdk.org Thu Aug 8 09:47:25 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Thu, 8 Aug 2024 09:47:25 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> References: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> Message-ID: On Tue, 6 Aug 2024 08:55:42 GMT, Bhavana Kilambi wrote: >> This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. >> >> Tested JTREG tests - >> hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. > > Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: > > Add MulHF::Ideal() and MulHF Idealization tests Thank you for the review. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1175#issuecomment-2275400586 From duke at openjdk.org Thu Aug 8 09:47:25 2024 From: duke at openjdk.org (duke) Date: Thu, 8 Aug 2024 09:47:25 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> References: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> Message-ID: On Tue, 6 Aug 2024 08:55:42 GMT, Bhavana Kilambi wrote: >> This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. >> >> Tested JTREG tests - >> hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. > > Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: > > Add MulHF::Ideal() and MulHF Idealization tests @Bhavana-Kilambi Your change (at version b58c73761e8106bf2fbd7b0370821289479cae97) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1175#issuecomment-2275402005 From bkilambi at openjdk.org Thu Aug 8 15:23:50 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Thu, 8 Aug 2024 15:23:50 GMT Subject: [lworld+fp16] Integrated: 8336406: Add support for FP16 binary operations In-Reply-To: References: Message-ID: On Tue, 23 Jul 2024 13:39:14 GMT, Bhavana Kilambi wrote: > This patch adds middle end support in C2 for a few FP16 binary operations, namely - subtract, multiply, divide, min and max. It also adds aarch64 backend support for these operations. > > Tested JTREG tests - > hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java, hotspot/jtreg/compiler/vectorization/TestFloat16VectorReinterpretConv.java, hotspot/jtreg/compiler/intrinsics/float16 and test/jdk/java/lang/Float16 and they successfully pass on aarch64 and x86 machines. This pull request has now been integrated. Changeset: ce32e8c9 Author: Bhavana Kilambi Committer: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/ce32e8c9bb2e99b20d088b88819feac9da6125f5 Stats: 1235 lines in 29 files changed: 956 ins; 175 del; 104 mod 8336406: Add support for FP16 binary operations Reviewed-by: jbhateja ------------- PR: https://git.openjdk.org/valhalla/pull/1175 From bkilambi at openjdk.org Thu Aug 8 15:28:49 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Thu, 8 Aug 2024 15:28:49 GMT Subject: [lworld+fp16] RFR: 8336406: Add support for FP16 binary operations [v2] In-Reply-To: References: <82QmNySQsYVNMJz2HN92O2FRuUrUUBIAV7I4QkwP9DM=.712ae598-00fe-4b05-80c0-35f9527568af@github.com> Message-ID: On Thu, 8 Aug 2024 02:49:43 GMT, Jatin Bhateja wrote: >> Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision: >> >> Add MulHF::Ideal() and MulHF Idealization tests > > Please address the closing comments and integrate. > > Patch looks good to me. Will add x86 backend support for newly added intrinsic. Hi @jatin-bhateja, I just noticed that the IR tests for x *2 -> x + x already exist for float and double here - `test/hotspot/jtreg/compiler/c2/irTests/TestMulNodeIdealization.java`. Shall I update this test with the Half float Ideal tests and remove this file introduced in this patch - `test/hotspot/jtreg/compiler/c2/irTests/MulHFNodeIdealizationTests.java`? I am thinking, we will have to pass `--enable-preview` flag for the whole file which is applicable even for float and double tests which may not need it and we might not be able to test these testcases in older JDKs. What do you suggest? Is it better to keep this test separate for half-float or integrate it with float and double tests? ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1175#issuecomment-2276104821 From jesse at swank.ca Thu Aug 8 16:02:51 2024 From: jesse at swank.ca (Jesse Wilson) Date: Thu, 08 Aug 2024 09:02:51 -0700 Subject: =?UTF-8?Q?Valhalla_builds_&_macOS_Gatekeeper:_=E2=80=9Cjdk-23.jdk=E2=80=9D?= =?UTF-8?Q?_is_damaged_and_can=E2=80=99t_be_opened.?= Message-ID: Hi, I had a problem with the Valhalla release build I downloaded to my Mac. I got this scary error in a dialog when I ran java: > ?jdk-23.jdk? is damaged and can?t be opened. You should move it to the Trash. I read through Console.app to get more context: > AMFI: '/Library/Java/JavaVirtualMachines/valhalla-x86_64-jdk-23.jdk/Contents/Home/bin/java' is adhoc signed. > /Library/Java/JavaVirtualMachines/valhalla-x86_64-jdk-23.jdk/Contents/Home/bin/java not valid: Error Domain=AppleMobileFileIntegrityError Code=-423 "The file is adhoc signed or signed by an unknown certificate chain" UserInfo={NSURL=file:///Library/Java/JavaVirtualMachines/valhalla-x86_64-jdk-23.jdk/Contents/Home/bin/java, NSLocalizedDescription=The file is adhoc signed or signed by an unknown certificate chain} I was able to work around this issue by taking the JDK directory out of the quarantine: > sudo xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/jdk-23.jdk I would like to request somebody fight Apple?s GateKeeper system so this workaround isn?t necessary for future releases. In the interim this workaround might come in handy. ? Jesse -------------- next part -------------- An HTML attachment was scrubbed... URL: From vromero at openjdk.org Thu Aug 8 20:58:14 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 8 Aug 2024 20:58:14 GMT Subject: [lworld] Integrated: 8338013: [lworld] User defined value classes cannot extend j.l.Number Message-ID: When adding the value flag to migrated value classes we need to unset the identity flag if it was previously set ------------- Commit messages: - 8338013: [lworld] User defined value classes cannot extend j.l.Number Changes: https://git.openjdk.org/valhalla/pull/1195/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1195&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338013 Stats: 13 lines in 2 files changed: 13 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1195.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1195/head:pull/1195 PR: https://git.openjdk.org/valhalla/pull/1195 From vromero at openjdk.org Thu Aug 8 20:58:14 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 8 Aug 2024 20:58:14 GMT Subject: [lworld] Integrated: 8338013: [lworld] User defined value classes cannot extend j.l.Number In-Reply-To: References: Message-ID: On Thu, 8 Aug 2024 20:50:35 GMT, Vicente Romero wrote: > When adding the value flag to migrated value classes we need to unset the identity flag if it was previously set This pull request has now been integrated. Changeset: cbf3b7ad Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/cbf3b7ade0b0b7e0255d8d14bc9e8ba3abc9acee Stats: 13 lines in 2 files changed: 13 ins; 0 del; 0 mod 8338013: [lworld] User defined value classes cannot extend j.l.Number ------------- PR: https://git.openjdk.org/valhalla/pull/1195 From jbhateja at openjdk.org Fri Aug 9 10:43:56 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Fri, 9 Aug 2024 10:43:56 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. Message-ID: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. Kindly review and approve. Best Regards, Jatin Hi @Bhavana-Kilambi, On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / secondary). It may need defining following new matcher routines and some more interfaces:- match_rule_supported_shared(int primary_opcode, int secondary_opcode) match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) VectorNode::opcode(int popc, int sopc, BasicType bt) BinaryOpNode (Dst, Src1, Src2, immI_Opcode); Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). ------------- Commit messages: - Feature based opcode checks to enforce intrinsification failure. - 8338102: x86 backend support for newly added Float16 intrinsics. Changes: https://git.openjdk.org/valhalla/pull/1196/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1196&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338102 Stats: 170 lines in 7 files changed: 162 ins; 0 del; 8 mod Patch: https://git.openjdk.org/valhalla/pull/1196.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1196/head:pull/1196 PR: https://git.openjdk.org/valhalla/pull/1196 From jbhateja at openjdk.org Fri Aug 9 11:00:41 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Fri, 9 Aug 2024 11:00:41 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:35:31 GMT, Jatin Bhateja wrote: > This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. > > Kindly review and approve. > > Best Regards, > Jatin > > Hi @Bhavana-Kilambi, > On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / secondary). It may need defining following new matcher routines and some more interfaces:- > > match_rule_supported_shared(int primary_opcode, int secondary_opcode) > match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) > VectorNode::opcode(int popc, int sopc, BasicType bt) > > BinaryOpNode (Dst, Src1, Src2, immI_Opcode); > > > Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? > > Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2277691737 From bkilambi at openjdk.org Fri Aug 9 11:39:45 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Fri, 9 Aug 2024 11:39:45 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:35:31 GMT, Jatin Bhateja wrote: > This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. > > Kindly review and approve. > > Best Regards, > Jatin > > Hi @Bhavana-Kilambi, > On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / secondary). It may need defining following new matcher routines and some more interfaces:- > > match_rule_supported_shared(int primary_opcode, int secondary_opcode) > match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) > VectorNode::opcode(int popc, int sopc, BasicType bt) > > BinaryOpNode (Dst, Src1, Src2, immI_Opcode); > > > Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? > > Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java line 64: > 62: applyIfCPUFeature = {"avx512_fp16", "true"}) > 63: @IR(counts = {IRNode.ADD_VHF, ">= 1"}, > 64: applyIfCPUFeatureOr = {"avx512_fp16", "true", "sve", "true"}) For add operation, avx512_fp16 feature check is already in place. test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java line 86: > 84: @Warmup(10000) > 85: @IR(counts = {IRNode.SUB_VHF, ">= 1"}, > 86: applyIfCPUFeature = {"avx512_fp16", "true"}) This rule can be merged with the next rule for sve - `applyIfCPUFeatureOr = {"avx512_fp16", "true", "sve", "true"}`. Same for other operations below. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1196#discussion_r1711305388 PR Review Comment: https://git.openjdk.org/valhalla/pull/1196#discussion_r1711306982 From bkilambi at openjdk.org Fri Aug 9 12:33:44 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Fri, 9 Aug 2024 12:33:44 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:58:20 GMT, Jatin Bhateja wrote: >> This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. >> >> Kindly review and approve. >> >> Best Regards, >> Jatin >> >> Hi @Bhavana-Kilambi, >> On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / secondary). It may need defining following new matcher routines and some more interfaces:- >> >> match_rule_supported_shared(int primary_opcode, int secondary_opcode) >> match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) >> VectorNode::opcode(int popc, int sopc, BasicType bt) >> >> BinaryOpNode (Dst, Src1, Src2, immI_Opcode); >> >> >> Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? >> >> Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). > > FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. Hi @jatin-bhateja , what do you mean by - "shared IR node in applicable scenario". You mean nodes like MaxV, MinV which are shared between multiple types? Also by - "unary / binary / secondary" do you mean ternary instead of secondary? ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2277839671 From roger.riggs at oracle.com Fri Aug 9 14:12:38 2024 From: roger.riggs at oracle.com (Roger Riggs) Date: Fri, 9 Aug 2024 10:12:38 -0400 Subject: Result: New Valhalla Committer: Coleen Phillimore Message-ID: <70c43755-57ca-4afc-b8e8-65b24110e605@oracle.com> Voting for Coleen Phillimore [1] is now closed Yes: 7 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. Roger Riggs [1] https://mail.openjdk.org/pipermail/valhalla-dev/2024-July/012811.html From dsimms at openjdk.org Fri Aug 9 16:42:43 2024 From: dsimms at openjdk.org (David Simms) Date: Fri, 9 Aug 2024 16:42:43 GMT Subject: [lworld] RFR: Merge jdk Message-ID: <0ii8uIhR208Ol3nM2bUq6loTT9UYXtlZIPAxd6r_jbI=.adf84b3f-a284-442b-8ea4-deaa746bdd6f@github.com> Merge tag jdk-23+14 ------------- Commit messages: - Merge tag 'jdk-23+14' into lworld_merge_jdk_23_14 - 8328064: Remove obsolete comments in constantPool and metadataFactory - 8328030: Convert javax/swing/text/GlyphView/4984669/bug4984669.java applet test to main - 8325897: Parallel: Remove PSYoungGen::is_maximal_no_gc - 8327755: Convert javax/swing/JScrollBar/8039464/Test8039464.java applet to main - 8327754: Convert javax/swing/JPopupMenu/7160604/bug7160604.java applet to main - 8327753: Convert javax/swing/JOptionPane/8024926/bug8024926.java applet to main - 8327752: Convert javax/swing/JOptionPane/4174551/bug4174551.java applet to main - 8328004: Minor updates to TrayIcon test DisposeInActionEventTest.java - 8185862: AWT Assertion Failure in ::GetDIBits(hBMDC, hBM, 0, 1, 0, gpBitmapInfo, 0) 'awt_Win32GraphicsDevice.cpp', at line 185 - ... and 93 more: https://git.openjdk.org/valhalla/compare/e45febcd...e33ceb12 The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=1197&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=valhalla&pr=1197&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/1197/files Stats: 19803 lines in 419 files changed: 10546 ins; 7844 del; 1413 mod Patch: https://git.openjdk.org/valhalla/pull/1197.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1197/head:pull/1197 PR: https://git.openjdk.org/valhalla/pull/1197 From dsimms at openjdk.org Fri Aug 9 17:41:48 2024 From: dsimms at openjdk.org (David Simms) Date: Fri, 9 Aug 2024 17:41:48 GMT Subject: [lworld] Integrated: Merge jdk In-Reply-To: <0ii8uIhR208Ol3nM2bUq6loTT9UYXtlZIPAxd6r_jbI=.adf84b3f-a284-442b-8ea4-deaa746bdd6f@github.com> References: <0ii8uIhR208Ol3nM2bUq6loTT9UYXtlZIPAxd6r_jbI=.adf84b3f-a284-442b-8ea4-deaa746bdd6f@github.com> Message-ID: On Fri, 9 Aug 2024 16:36:25 GMT, David Simms wrote: > Merge tag jdk-23+14 This pull request has now been integrated. Changeset: 9c8e7835 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/9c8e7835c0052c2c541773a3f4e6cf8da12e4b59 Stats: 19803 lines in 419 files changed: 10546 ins; 7844 del; 1413 mod Merge jdk Merge jdk-23+14 ------------- PR: https://git.openjdk.org/valhalla/pull/1197 From jbhateja at openjdk.org Fri Aug 9 18:47:40 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Fri, 9 Aug 2024 18:47:40 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:58:20 GMT, Jatin Bhateja wrote: >> This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. >> >> Kindly review and approve. >> >> Best Regards, >> Jatin >> >> Hi @Bhavana-Kilambi, >> On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / ternary). It may need defining following new matcher routines and some more interfaces:- >> >> match_rule_supported_shared(int primary_opcode, int secondary_opcode) >> match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) >> VectorNode::opcode(int popc, int sopc, BasicType bt) >> >> BinaryOpNode (Dst, Src1, Src2, immI_Opcode); >> >> >> Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? >> >> Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). > > FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. > Hi @jatin-bhateja , what do you mean by - "shared IR node in applicable scenario". You mean nodes like MaxV, MinV which are shared between multiple types? Also by - "unary / binary / secondary" do you mean ternary instead of secondary? Hi @Bhavana-Kilambi , Yup, it was a typo. As of now we have a seperate IR node for all half float operations. Do you see a benefit in sharing AddHF, SubHF, MulHF, DivHF, MaxHF and MinHF into one IR with secondary opcode ? We may need to define some new interfaces in matcher as mentioned in my PR description. Going forward we may also need to handle Int8 and FP8, creating a sepcialized IR may add overhead. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2278539180 From rgiulietti at openjdk.org Fri Aug 9 18:59:44 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 9 Aug 2024 18:59:44 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v6] In-Reply-To: References: Message-ID: On Fri, 2 Aug 2024 01:52:13 GMT, Joe Darcy wrote: >> Adding comments and test cases for Float16.fma. > > Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: > > Fix typo in test comments. src/java.base/share/classes/java/lang/Float16.java line 913: > 911: * representable in the Float16 format range from the > 912: * subnormal 2^(-24), MIN_VALUE, to 2^15, the leading bit > 913: * position of MAX_VALUE. It's unclear what is meant by "bit position". src/java.base/share/classes/java/lang/Float16.java line 917: > 915: * Consequently, a double can hold the exact sum of any two > 916: * Float16 values as the maximum difference in exponents of > 917: * Float16 values less than the precision width of double. This is correct, but doesn't seem to be relevant for what follows. We don't have a sum between two `Float16` values here. src/java.base/share/classes/java/lang/Float16.java line 937: > 935: * > 936: * For the product a*b of Float16 inputs, the range of > 937: * exponents for nonzero finite results goes from 2^(-28) Suggestion: * exponents for nonzero finite results goes from 2^(-48) src/java.base/share/classes/java/lang/Float16.java line 940: > 938: * (from MIN_VALUE squared) to 2^31 (from the exact value of > 939: * MAX_VALUE squared). This full range of exponent positions, > 940: * (31 -(-28) + 1 ) = 60 exceeds the precision of Suggestion: * (31 -(-48) + 1 ) = 80 exceeds the precision of src/java.base/share/classes/java/lang/Float16.java line 954: > 952: * = 0x1.ffdp16 will certainly overflow (under round to > 953: * nearest) since adding in c = -MAX_VALUE will still be above > 954: * the overflow threshold. Suggestion: * Therefore, for any product greater than or equal to 0x1.ffep15 + MAX_VALUE * = 0x1.ffdp16, the "fma" will certainly overflow (under round to * nearest), since adding in c = -MAX_VALUE will still be above * or at the overflow threshold. src/java.base/share/classes/java/lang/Float16.java line 971: > 969: * precision to hold down to the smallest subnormal bit > 970: * position, 15 - (-24) + 1 = 40 < 53. If the product was > 971: * large and overflowed when the third operand was added, this In `double` arithmetic, as here, `a * b + c` cannot overflow, so this is a bit confusing. src/java.base/share/classes/java/lang/Float16.java line 981: > 979: * The smallest exponent possible in a product is 2^(-48). > 980: * For moderately sized Float16 values added to the product, > 981: * with a leading exponent of about 4, the sum will not be Suggestion: * with an exponent of about 4, the sum will not be src/java.base/share/classes/java/lang/Float16.java line 984: > 982: * exact. Therefore, an analysis is needed to determine if the > 983: * double-rounding is benign or would lead to a different > 984: * final Float16 result. Double rounding an lead to a Suggestion: * final Float16 result. Double rounding can lead to a test/jdk/java/lang/Float16/BasicFloat16ArithTests.java line 386: > 384: */ > 385: for(int i = 0; i <= Short.MAX_VALUE; i++ ) { > 386: // Start by just checking positive values... The test does, in fact, also check the negated value. It doesn't check negative zero, though. Maybe it's simpler to loop like so for(int i = Short.MIN_VALUE; i <= Short.MAX_VALUE; i++ ) { and drop the logic for the negated value. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711956807 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711956771 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711956690 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711961014 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711956573 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711974163 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711976147 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1711977126 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1712000660 From rgiulietti at openjdk.org Fri Aug 9 19:35:43 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 9 Aug 2024 19:35:43 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v6] In-Reply-To: References: Message-ID: On Fri, 9 Aug 2024 18:56:44 GMT, Raffaello Giulietti wrote: >> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: >> >> Fix typo in test comments. > > test/jdk/java/lang/Float16/BasicFloat16ArithTests.java line 386: > >> 384: */ >> 385: for(int i = 0; i <= Short.MAX_VALUE; i++ ) { >> 386: // Start by just checking positive values... > > The test does, in fact, also check the negated value. > It doesn't check negative zero, though. > > Maybe it's simpler to loop like so > > for(int i = Short.MIN_VALUE; i <= Short.MAX_VALUE; i++ ) { > > and drop the logic for the negated value. Forget about this comment, except for the first line. The test is already complete ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1712045068 From jbhateja at openjdk.org Mon Aug 12 03:51:27 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Mon, 12 Aug 2024 03:51:27 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. [v2] In-Reply-To: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> > This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. > > Kindly review and approve. > > Best Regards, > Jatin > > Hi @Bhavana-Kilambi, > On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / ternary). It may need defining following new matcher routines and some more interfaces:- > > match_rule_supported_shared(int primary_opcode, int secondary_opcode) > match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) > VectorNode::opcode(int popc, int sopc, BasicType bt) > > BinaryOpNode (Dst, Src1, Src2, immI_Opcode); > > > Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? > > Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision: Optimizing IR checks ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1196/files - new: https://git.openjdk.org/valhalla/pull/1196/files/f9f76fcf..2469628c Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1196&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1196&range=00-01 Stats: 17 lines in 1 file changed: 0 ins; 12 del; 5 mod Patch: https://git.openjdk.org/valhalla/pull/1196.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1196/head:pull/1196 PR: https://git.openjdk.org/valhalla/pull/1196 From darcy at openjdk.org Mon Aug 12 05:57:17 2024 From: darcy at openjdk.org (Joe Darcy) Date: Mon, 12 Aug 2024 05:57:17 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v7] In-Reply-To: References: Message-ID: > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: Respond to review feedback. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/f3ceea16..172eea95 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=06 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=05-06 Stats: 50 lines in 2 files changed: 10 ins; 10 del; 30 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From bkilambi at openjdk.org Mon Aug 12 10:02:45 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Mon, 12 Aug 2024 10:02:45 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. [v2] In-Reply-To: <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> Message-ID: On Mon, 12 Aug 2024 03:51:27 GMT, Jatin Bhateja wrote: >> This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. >> >> Kindly review and approve. >> >> Best Regards, >> Jatin >> >> Hi @Bhavana-Kilambi, >> On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / ternary). It may need defining following new matcher routines and some more interfaces:- >> >> match_rule_supported_shared(int primary_opcode, int secondary_opcode) >> match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) >> VectorNode::opcode(int popc, int sopc, BasicType bt) >> >> BinaryOpNode (Dst, Src1, Src2, immI_Opcode); >> >> >> Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? >> >> Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). > > Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision: > > Optimizing IR checks I am not sure about the idea of having unified nodes for multiple classes of operations (unary, binary etc). I am wondering whether it will simplify or complicate the implementation of these operations? I'll just break down my thoughts into the following major points - - The size of the resulting sea of nodes graph should not change. Instead of having AddHF/SubHF we will have a BinaryOpNode. Plus it needs to now store an extra field (secondary opcode) to differentiate between the various binary operations. Maybe the size of the JVM binary itself might reduce a bit but not sure about the c2 IR graph. - How easy would it be to implement Ideal/Value optimizations for a BinaryOpNode (or any other unified node for that matter)? I don't think we can club optimizations for INT8 and FP8/FP16 as those optimizations would be vastly different between these types. Then should we have separate unified nodes for floating-point (FP8, FP16) and integer types (INT4, INT8)? In the current state, we are able to reuse FP32 optimizations very well for FP16 and where ever we do not want those optimizations to be applied, we just override it (in FP16 methods) and change accordingly. - From your description above, it looks like we will still have separate Vector Nodes right? - Also, we might need some extra handling to decode the secondary opcode in the backend during matching. I am not sure how much of benefit we might have with this approach. Also, do you know tentatively, by when is it planned to implement support for FP8/INT8 types in JDK? I think it will take quite some time for users to actually start using even FP16 and lot of future bugs/optimizations to be addressed for FP16. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2283552499 From bkilambi at openjdk.org Mon Aug 12 10:02:45 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Mon, 12 Aug 2024 10:02:45 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:58:20 GMT, Jatin Bhateja wrote: > FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. I can add implementation for these conversions (if it's not already taken by anyone else or you :) ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2283555360 From dsimms at openjdk.org Mon Aug 12 10:16:21 2024 From: dsimms at openjdk.org (David Simms) Date: Mon, 12 Aug 2024 10:16:21 GMT Subject: [lworld] RFR: Merge jdk Message-ID: * Merge tag jdk-23+15 * Merge tag jdk-23+16 ------------- Commit messages: - Backout: 8328862: Remove unused GrowableArrayFilterIterator - Merge tag 'jdk-23+16' into lworld_merge_jdk_23_15 - 8329178: Clean up jdk.accessibility native compilation - 8329096: G1: Change the type of G1BlockOffsetTable::_offset_base to uint8_t* - 8328986: Deprecate UseRTM* flags for removal - 8327875: ChoiceFormat should advise throwing UnsupportedOperationException for unused methods - 8328819: Remove applet usage from JFileChooser tests bug6698013 - 8328227: Remove applet usage from JColorChooser tests Test4887836 - 8329189: runtime/stack/Stack016.java fails on libgraal - 8329163: C2: possible overflow in PhaseIdealLoop::extract_long_range_checks() - ... and 220 more: https://git.openjdk.org/valhalla/compare/9c8e7835...d0f95e81 The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=1198&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=valhalla&pr=1198&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/1198/files Stats: 357053 lines in 2887 files changed: 19089 ins; 13624 del; 324340 mod Patch: https://git.openjdk.org/valhalla/pull/1198.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1198/head:pull/1198 PR: https://git.openjdk.org/valhalla/pull/1198 From jbhateja at openjdk.org Mon Aug 12 10:42:46 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Mon, 12 Aug 2024 10:42:46 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. [v2] In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> Message-ID: On Mon, 12 Aug 2024 09:58:50 GMT, Bhavana Kilambi wrote: > I am not sure about the idea of having unified nodes for multiple classes of operations (unary, binary etc). I am wondering whether it will simplify or complicate the implementation of these operations? I'll just break down my thoughts into the following major points - > > * The size of the resulting sea of nodes graph should not change. Instead of having AddHF/SubHF we will have a BinaryOpNode. Plus it needs to now store an extra field (secondary opcode) to differentiate between the various binary operations. Maybe the size of the JVM binary itself might reduce a bit but not sure about the c2 IR graph. Yes, Sea Of Nodes is a compile time graph and is agnostic to common IR representation. Having a common IR translates into single instruction selection pattern, as you know ADLC processes each pattern and generates code catering to different downstream passes. By passing additional secondary opcode as an immI (constant) operand we can save lots of generate code. > * How easy would it be to implement Ideal/Value optimizations for a BinaryOpNode (or any other unified node for that This is should be relatively straightforward since secondary opcode is a compile time constant, I guess your main concern looks like Value / Identity routines which are inherited currently may not be usable, but one can always factor out the meaty parts of existing routines and then call it from new IR Value / Identity routines to avoid code-duplication.. > matter)? I don't think we can club optimizations for INT8 and FP8/FP16 as those optimizations would be vastly different between these types. Then should we have separate unified nodes for floating-point (FP8, FP16) and integer types (INT4, INT8)? What I meant was one Binary / Unary / Ternary node for each new reduced precision floating point type, as of now on x86 INT8 application is limited to dot product, its not a full blown ISA extension like FP16. > In the current state, we are able to reuse FP32 optimizations very well for FP16 and where ever we do not want those optimizations to be applied, we just override it (in FP16 methods) and change accordingly. Yes, that's our intention was while choosing this implementation strategy. My intent here is to record our discussion on community mailing list so that we can accommodate suggestions from larger audience if any. > * From your description above, it looks like we will still have separate Vector Nodes right? No, we can also have common IR for vectors. > * Also, we might need some extra handling to decode the secondary opcode in the backend during matching. > Matcher already handles constant integral operands, hence actual decision to emit specific instruction encoding based on secondary opcode can easily be deferred to encoding blocks without any hassle. > I am not sure how much of benefit we might have with this approach. Also, do you know tentatively, by when is it planned to implement support for FP8/INT8 types in JDK? I think it will take quite some time for users to actually start using even FP16 and lot of future bugs/optimizations to be addressed for FP16. FTR, here is link to our discussion on common vs separate IR https://github.com/jatin-bhateja/external_staging/blob/main/FP16Support/design_discussions.txt#L61 ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2283627677 From jbhateja at openjdk.org Mon Aug 12 10:42:46 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Mon, 12 Aug 2024 10:42:46 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Mon, 12 Aug 2024 10:00:22 GMT, Bhavana Kilambi wrote: > > FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. > > I can add implementation for these conversions (if it's not already taken by anyone else or you :) Hi @Bhavana-Kilambi , this will be really helpful. Also, your comments have been incorporated, kindly approve if looks ok. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2283629407 From bkilambi at openjdk.org Mon Aug 12 10:48:40 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Mon, 12 Aug 2024 10:48:40 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. [v2] In-Reply-To: <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> <9tOypZn8nwJ4nvKalSax6BKNeuixanH7qg6j5BhAdss=.e195fecf-ecce-4486-aceb-24d9fdea54d0@github.com> Message-ID: On Mon, 12 Aug 2024 03:51:27 GMT, Jatin Bhateja wrote: >> This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. >> >> Kindly review and approve. >> >> Best Regards, >> Jatin >> >> Hi @Bhavana-Kilambi, >> On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / ternary). It may need defining following new matcher routines and some more interfaces:- >> >> match_rule_supported_shared(int primary_opcode, int secondary_opcode) >> match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) >> VectorNode::opcode(int popc, int sopc, BasicType bt) >> >> BinaryOpNode (Dst, Src1, Src2, immI_Opcode); >> >> >> Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? >> >> Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). > > Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision: > > Optimizing IR checks The non-x86 part looks good to me. ------------- Marked as reviewed by bkilambi (no project role). PR Review: https://git.openjdk.org/valhalla/pull/1196#pullrequestreview-2232633884 From thartmann at openjdk.org Mon Aug 12 14:32:30 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Mon, 12 Aug 2024 14:32:30 GMT Subject: [lworld] RFR: 8336779: [lworld] C2 compilations hits "what's left behind is null" assert in do_checkcast Message-ID: We assert because we don't expect an `InlineTypeNode` after a `null_assert`. The fix is to simply replace it with null in the parsing map. Full fix to enable scalarization of null after `null_assert` will be done by [JDK-8284443](https://bugs.openjdk.org/browse/JDK-8284443) (as the ToDo in the code at line 2198 already mentions). Best regards, Tobias ------------- Commit messages: - Removed ToDo - 8336779: [lworld] C2 compilations hits "what's left behind is null" assert in do_checkcast Changes: https://git.openjdk.org/valhalla/pull/1199/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1199&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336779 Stats: 60 lines in 2 files changed: 60 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1199.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1199/head:pull/1199 PR: https://git.openjdk.org/valhalla/pull/1199 From thartmann at openjdk.org Mon Aug 12 15:11:18 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Mon, 12 Aug 2024 15:11:18 GMT Subject: [lworld] RFR: 8336313: [lworld] C2 compilation hits asserts with -XX:VerifyIterativeGVN=11 Message-ID: Verification code does not like that the hook node we use in `InlineTypeNode::initialize_fields` is dead and that the CmpNode it's attached to is not enqueued for IGVN after replacement. Fixes are straight forward. I'll add `-XX:VerifyIterativeGVN=11` to our (internal) stress job. Best regards, Tobias ------------- Commit messages: - 8336313: [lworld] C2 compilation hits asserts with -XX:VerifyIterativeGVN=11 Changes: https://git.openjdk.org/valhalla/pull/1200/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1200&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336313 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1200.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1200/head:pull/1200 PR: https://git.openjdk.org/valhalla/pull/1200 From darcy at openjdk.org Mon Aug 12 15:27:45 2024 From: darcy at openjdk.org (Joe Darcy) Date: Mon, 12 Aug 2024 15:27:45 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma In-Reply-To: References: Message-ID: On Fri, 21 Jun 2024 14:17:02 GMT, Raffaello Giulietti wrote: >> Adding comments and test cases for Float16.fma. > > The analysis done [here](https://github.com/openjdk/valhalla/pull/1117#issuecomment-2174342914) seems correct, but there is an implicit suspension moment in the last case. > >> That leaves possibly non-exact product-sum with a combination of product in the subnormal range of Float16 and the c term to be added in being not-small. However, if this product-sum is non-exact, the smaller term from the product, with at most 22 exponent bit positions set, and the the 11 bits from c being summed in, must be separated by at least 53 - (22 + 11) = 20 bit positions otherwise the product-sum would fit in a double. I believe this implies at least one of the double-rounding scenarios cannot occur, in particular a half-way result in the smaller precision, Float16 in this case, rounding differently because sticky bit information from the higher precision was rounded away. > > Here's a further analysis of this case. > > Double rounding is usually harmless. It is harmful only in two situations: > > - The first rounding from the exact value to the extended precision (here `double`) happens to be directed _toward_ 0 to a value exactly midway between two adjacent working precision (here `float16`) values, followed by a second rounding from there which again happens to be directed _toward_ 0 to one of these values (the one with lesser magnitude). > A single rounding from the exact value to the working precision, in contrast, rounds to the value with larger magnitude. > - Symmetrically, the first rounding to the extended precision happens to be directed _away_ from 0 to a value exactly midway between two adjacent working precision values, followed by a second rounding from there which again happens to be directed _away_ from 0 to one of these values (the one with larger magnitude). > However, a single rounding from the exact value to the working precision rounds to the value with lesser magnitude. > > In any other case double rounding is innocuous, returning the same value as a single rounding to the working precision. > We only need to ensure that the first rounding to `double` does not produce the midpoint of two adjacent `float16` values. > > - If a?b and c have the same sign, the sum a?b + c has a significand with a large gap of 20 or more 0s between the bits of the signifcand of c to the left (at most 11 bits) and those of the product a?b to the right (at most 22 bits). > The rounding bit for the final working precision of `float16` is the leftmost 0 in the gap. > - If rounding to `double` is dir... Thanks for the review comments @rgiulietti ; the most recent push should address the points you raised. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1143#issuecomment-2284277898 From rgiulietti at openjdk.org Mon Aug 12 15:41:45 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Mon, 12 Aug 2024 15:41:45 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v7] In-Reply-To: References: Message-ID: <4rWSUcUAcxyqpd10bV3CKXVcvnOlSEJhqfoysUeSZbo=.05602a99-b199-437b-8908-3b927122b03f@github.com> On Mon, 12 Aug 2024 05:57:17 GMT, Joe Darcy wrote: >> Adding comments and test cases for Float16.fma. > > Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: > > Respond to review feedback. Looks good ------------- Marked as reviewed by rgiulietti (no project role). PR Review: https://git.openjdk.org/valhalla/pull/1143#pullrequestreview-2233413456 From darcy at openjdk.org Mon Aug 12 15:52:43 2024 From: darcy at openjdk.org (Joe Darcy) Date: Mon, 12 Aug 2024 15:52:43 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v7] In-Reply-To: References: Message-ID: On Mon, 8 Jul 2024 06:16:02 GMT, Jatin Bhateja wrote: >> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: >> >> Respond to review feedback. > > Marked as reviewed by jbhateja (Committer). @jatin-bhateja , if you re-review the current state of the PR, I'll integrate the changes so they can be sponsored. Thanks. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1143#issuecomment-2284335045 From jbhateja at openjdk.org Mon Aug 12 18:39:45 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Mon, 12 Aug 2024 18:39:45 GMT Subject: [lworld+fp16] Integrated: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Fri, 9 Aug 2024 10:35:31 GMT, Jatin Bhateja wrote: > This patch enables newly added Float16 intrinsicfication support added by [JDK-8336406](https://bugs.openjdk.org/browse/JDK-8336406) for x86 targets supporting AVX512_FP16 feature. > > Kindly review and approve. > > Best Regards, > Jatin > > Hi @Bhavana-Kilambi, > On a second thought, do you see a possibility of sharing the IR nodes by appending secondary opcode to shared IR node in applicable scenarios, so we can have one IR for each class of operations (unary / binary / ternary). It may need defining following new matcher routines and some more interfaces:- > > match_rule_supported_shared(int primary_opcode, int secondary_opcode) > match_rule_supported_vector_shared (int primary_opcode, int secondary_opcode, int vlen, BasicType bt) > VectorNode::opcode(int popc, int sopc, BasicType bt) > > BinaryOpNode (Dst, Src1, Src2, immI_Opcode); > > > Secondary opcode being a immediate operand can be accessed by encoding routines. WDYT ? > > Another possibility could be to encode both primary and secondary opcodes in existing opcode without disturbing the interfaces and add relevant helper routines to extract primary / secondary opcodes, I think opcodes are never -ve values, hence secondary opcode could be accommodated into higher order bits starting from (MSB-1). This pull request has now been integrated. Changeset: c6a704dc Author: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/c6a704dca7e0b1be2e8e35f00aea1ef923348b48 Stats: 163 lines in 7 files changed: 150 ins; 0 del; 13 mod 8338102: x86 backend support for newly added Float16 intrinsics. Reviewed-by: bkilambi ------------- PR: https://git.openjdk.org/valhalla/pull/1196 From darcy at openjdk.org Mon Aug 12 19:14:52 2024 From: darcy at openjdk.org (Joe Darcy) Date: Mon, 12 Aug 2024 19:14:52 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. @jatin-bhateja , can you sponsor this change? Thanks. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1191#issuecomment-2284729834 From paul.sandoz at oracle.com Mon Aug 12 19:25:17 2024 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 12 Aug 2024 19:25:17 +0000 Subject: CFV: New Valhalla Committer: Joe Darcy Message-ID: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> I hereby nominate Joe Darcy [3] to Valhalla Committer. Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the core-libs and compiler groups, and was lead of Project Coin. Votes are due by August 26th, 2024. Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [4]. Paul. [1] https://openjdk.org/census#valhalla [2] https://github.com/openjdk/jdk/commits?author=jddarcy [3] https://openjdk.org/census#darcy [4] https://openjdk.org/projects/#committer-vote From roger.riggs at oracle.com Mon Aug 12 19:25:54 2024 From: roger.riggs at oracle.com (Roger Riggs) Date: Mon, 12 Aug 2024 15:25:54 -0400 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <7c1b52e9-ee95-4766-a82e-429228dce1da@oracle.com> Vote: Yes On 8/12/24 3:25 PM, Paul Sandoz wrote: > I hereby nominate Joe Darcy [3] to Valhalla Committer. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vicente.romero at oracle.com Mon Aug 12 19:52:06 2024 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 12 Aug 2024 15:52:06 -0400 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <80475953-b0a1-4b4b-ae40-2f7d988a5eba@oracle.com> vote: yes Vicente On 8/12/24 15:25, Paul Sandoz wrote: > I hereby nominate Joe Darcy [3] to Valhalla Committer. > > Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the core-libs and compiler groups, and was lead of Project Coin. > > Votes are due by August 26th, 2024. > > Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [4]. > > Paul. > > [1] https://openjdk.org/census#valhalla > [2] https://github.com/openjdk/jdk/commits?author=jddarcy > [3] https://openjdk.org/census#darcy > [4] https://openjdk.org/projects/#committer-vote From jbhateja at openjdk.org Mon Aug 12 21:41:40 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Mon, 12 Aug 2024 21:41:40 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v7] In-Reply-To: References: Message-ID: On Mon, 12 Aug 2024 05:57:17 GMT, Joe Darcy wrote: >> Adding comments and test cases for Float16.fma. > > Joe Darcy has updated the pull request incrementally with one additional commit since the last revision: > > Respond to review feedback. Hi @jddarcy , Thanks for very detailed educative comments. Looks good to me. Best Regards, Jatin test/jdk/java/lang/Float16/BasicFloat16ArithTests.java line 422: > 420: checkFloat16(f16Neg, valueOf(-halfWayNextDown).floatValue(), roundDownMsg); > 421: > 422: // Should always round down up Suggestion: // Should always round up ------------- Marked as reviewed by jbhateja (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1143#pullrequestreview-2234029589 PR Review Comment: https://git.openjdk.org/valhalla/pull/1143#discussion_r1714374407 From jatin.bhateja at intel.com Mon Aug 12 21:47:13 2024 From: jatin.bhateja at intel.com (Bhateja, Jatin) Date: Mon, 12 Aug 2024 21:47:13 +0000 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: Vote: yes Best Regards, Jatin > -----Original Message----- > From: valhalla-dev On Behalf Of Paul Sandoz > Sent: Tuesday, August 13, 2024 12:55 AM > To: valhalla-dev at openjdk.org > Subject: CFV: New Valhalla Committer: Joe Darcy > > I hereby nominate Joe Darcy [3] to Valhalla Committer. > > Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has > over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the > core-libs and compiler groups, and was lead of Project Coin. > > Votes are due by August 26th, 2024. > > Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes > must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [4]. > > Paul. > > [1] https://openjdk.org/census#valhalla > [2] https://github.com/openjdk/jdk/commits?author=jddarcy > [3] https://openjdk.org/census#darcy > [4] https://openjdk.org/projects/#committer-vote From rriggs at openjdk.org Mon Aug 12 23:05:10 2024 From: rriggs at openjdk.org (Roger Riggs) Date: Mon, 12 Aug 2024 23:05:10 GMT Subject: [lworld] RFR: 8338252: [lworld] jdk/internal/ReferencedKeyTest fix merge and robustness Message-ID: Fixup after merge. Addressing latent issues with ReferencedKeyTest - During the `methods()` tests the keys should be strongly held to avoid inadvertent GC collection and subsequent test failures (JDK-8336926) - Merge changes from Valhalla to use String (identity objects) for keys instead of Integer and Long that are value objects. ------------- Commit messages: - add bugid - 8338252: [lworld] jdk/internal/ReferencedKeyTest fix merge and robustness Changes: https://git.openjdk.org/valhalla/pull/1201/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1201&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338252 Stats: 43 lines in 1 file changed: 22 ins; 4 del; 17 mod Patch: https://git.openjdk.org/valhalla/pull/1201.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1201/head:pull/1201 PR: https://git.openjdk.org/valhalla/pull/1201 From thartmann at openjdk.org Tue Aug 13 06:10:12 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 06:10:12 GMT Subject: [lworld] Integrated: 8336313: [lworld] C2 compilation hits asserts with -XX:VerifyIterativeGVN=11 In-Reply-To: References: Message-ID: <391sUFczRek6TICdFkLk-VdxcaRH5OFWWZp2wpwklZE=.555f6347-d01e-4c3f-b711-38cd78216964@github.com> On Mon, 12 Aug 2024 15:05:56 GMT, Tobias Hartmann wrote: > Verification code does not like that the hook node we use in `InlineTypeNode::initialize_fields` is dead and that the CmpNode it's attached to is not enqueued for IGVN after replacement. Fixes are straight forward. I'll add `-XX:VerifyIterativeGVN=11` to our (internal) stress job. > > Best regards, > Tobias This pull request has now been integrated. Changeset: db93ab26 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/db93ab26bb85f4ea3c8dd6c6d225f418ab795dbc Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod 8336313: [lworld] C2 compilation hits asserts with -XX:VerifyIterativeGVN=11 ------------- PR: https://git.openjdk.org/valhalla/pull/1200 From thartmann at openjdk.org Tue Aug 13 06:11:04 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 06:11:04 GMT Subject: [lworld] Integrated: 8336779: [lworld] C2 compilations hits "what's left behind is null" assert in do_checkcast In-Reply-To: References: Message-ID: On Mon, 12 Aug 2024 14:11:02 GMT, Tobias Hartmann wrote: > We assert because we don't expect an `InlineTypeNode` after a `null_assert`. The fix is to simply replace it with null in the parsing map. Full fix to enable scalarization of null after `null_assert` will be done by [JDK-8284443](https://bugs.openjdk.org/browse/JDK-8284443) (as the ToDo in the code at line 2198 already mentions). > > Best regards, > Tobias This pull request has now been integrated. Changeset: 94c01c61 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/94c01c610a4715b1595c35af53828acbc9fa530c Stats: 60 lines in 2 files changed: 60 ins; 0 del; 0 mod 8336779: [lworld] C2 compilations hits "what's left behind is null" assert in do_checkcast ------------- PR: https://git.openjdk.org/valhalla/pull/1199 From darcy at openjdk.org Tue Aug 13 06:38:18 2024 From: darcy at openjdk.org (Joe Darcy) Date: Tue, 13 Aug 2024 06:38:18 GMT Subject: [lworld+fp16] Integrated: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. This pull request has now been integrated. Changeset: 835c16d5 Author: Joe Darcy Committer: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/835c16d5e5ec470f999f6109481e07ef5d6d33e4 Stats: 37 lines in 1 file changed: 35 ins; 0 del; 2 mod 8337605: Update description of constants in Float16 Reviewed-by: bkilambi, rgiulietti, jbhateja ------------- PR: https://git.openjdk.org/valhalla/pull/1191 From jbhateja at openjdk.org Tue Aug 13 06:38:17 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 13 Aug 2024 06:38:17 GMT Subject: [lworld+fp16] RFR: 8337605: Update description of constants in Float16 In-Reply-To: References: Message-ID: On Thu, 1 Aug 2024 00:42:02 GMT, Joe Darcy wrote: > Align wording or Float16 constants more closely with wording used in Float/Double, add links to corresponding Float/Double constants. LGTM. ------------- Marked as reviewed by jbhateja (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1191#pullrequestreview-2234617187 From thartmann at openjdk.org Tue Aug 13 07:06:06 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 07:06:06 GMT Subject: [lworld] Integrated: 8338262: [lworld] Make tests require flagless until JDK-8338261 is fixed Message-ID: Workaround for [JDK-8338261 [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field](https://bugs.openjdk.org/browse/JDK-8338261). Best regards, Tobias ------------- Commit messages: - 8338262: [lworld] Make tests require flagless until JDK-8338261 is fixed Changes: https://git.openjdk.org/valhalla/pull/1202/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1202&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338262 Stats: 7 lines in 2 files changed: 0 ins; 0 del; 7 mod Patch: https://git.openjdk.org/valhalla/pull/1202.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1202/head:pull/1202 PR: https://git.openjdk.org/valhalla/pull/1202 From thartmann at openjdk.org Tue Aug 13 07:06:06 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 07:06:06 GMT Subject: [lworld] Integrated: 8338262: [lworld] Make tests require flagless until JDK-8338261 is fixed In-Reply-To: References: Message-ID: <8AktPsgBSqUSV_fFn7vQynCCEmOInxEvlCYFgo5spgg=.38b4486f-997c-492f-8fb8-20f8ebf9f658@github.com> On Tue, 13 Aug 2024 06:59:03 GMT, Tobias Hartmann wrote: > Workaround for [JDK-8338261 [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field](https://bugs.openjdk.org/browse/JDK-8338261). > > Best regards, > Tobias This pull request has now been integrated. Changeset: 20e4f4a1 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/20e4f4a1389ef717fd07847379f458fef4c8f701 Stats: 7 lines in 2 files changed: 0 ins; 0 del; 7 mod 8338262: [lworld] Make tests require flagless until JDK-8338261 is fixed ------------- PR: https://git.openjdk.org/valhalla/pull/1202 From thartmann at openjdk.org Tue Aug 13 07:13:19 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 07:13:19 GMT Subject: [lworld] Integrated: 8338263: [lworld] Make more tests require flagless until JDK-8338261 is fixed Message-ID: Another workaround for [JDK-8338261 [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field](https://bugs.openjdk.org/browse/JDK-8338261). Best regards, Tobias ------------- Commit messages: - 8338263: [lworld] Make more tests require flagless until JDK-8338261 is fixed Changes: https://git.openjdk.org/valhalla/pull/1203/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1203&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338263 Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod Patch: https://git.openjdk.org/valhalla/pull/1203.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1203/head:pull/1203 PR: https://git.openjdk.org/valhalla/pull/1203 From thartmann at openjdk.org Tue Aug 13 07:13:19 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 07:13:19 GMT Subject: [lworld] Integrated: 8338263: [lworld] Make more tests require flagless until JDK-8338261 is fixed In-Reply-To: References: Message-ID: On Tue, 13 Aug 2024 07:06:50 GMT, Tobias Hartmann wrote: > Another workaround for [JDK-8338261 [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field](https://bugs.openjdk.org/browse/JDK-8338261). > > Best regards, > Tobias This pull request has now been integrated. Changeset: ec28c1a4 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/ec28c1a4e76bb0a5efda5326413024bbca0e9759 Stats: 4 lines in 1 file changed: 0 ins; 0 del; 4 mod 8338263: [lworld] Make more tests require flagless until JDK-8338261 is fixed ------------- PR: https://git.openjdk.org/valhalla/pull/1203 From thartmann at openjdk.org Tue Aug 13 08:03:34 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 08:03:34 GMT Subject: [lworld] RFR: 8336673: [lworld] TestIdentityWithEliminateBoxInDebugInfo.java fails with migrated classes Message-ID: Test fails because it does not expect `==` to be a susbtitutability test for `Long` arguments with `--enable-preview`. Let's just make it the default. Best regards, Tobias ------------- Commit messages: - enable preview - 8336673: [lworld] TestIdentityWithEliminateBoxInDebugInfo.java fails with migrated classes Changes: https://git.openjdk.org/valhalla/pull/1204/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1204&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336673 Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1204.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1204/head:pull/1204 PR: https://git.openjdk.org/valhalla/pull/1204 From thartmann at openjdk.org Tue Aug 13 08:05:58 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 08:05:58 GMT Subject: [lworld] Integrated: 8336673: [lworld] TestIdentityWithEliminateBoxInDebugInfo.java fails with migrated classes In-Reply-To: References: Message-ID: On Tue, 13 Aug 2024 07:57:02 GMT, Tobias Hartmann wrote: > Test fails because it does not expect `==` to be a susbtitutability test for `Long` arguments with `--enable-preview`. Let's just make it the default. > > Best regards, > Tobias This pull request has now been integrated. Changeset: f6329865 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/f63298652259f447841c9f9c271cfecf875b15b9 Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod 8336673: [lworld] TestIdentityWithEliminateBoxInDebugInfo.java fails with migrated classes ------------- PR: https://git.openjdk.org/valhalla/pull/1204 From dsimms at openjdk.org Tue Aug 13 08:08:11 2024 From: dsimms at openjdk.org (David Simms) Date: Tue, 13 Aug 2024 08:08:11 GMT Subject: [lworld] Integrated: Merge jdk In-Reply-To: References: Message-ID: On Mon, 12 Aug 2024 10:09:29 GMT, David Simms wrote: > * Merge tag jdk-23+15 > * Merge tag jdk-23+16 This pull request has now been integrated. Changeset: 8c0dc185 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/8c0dc185570f7661d3237d1011d22d04545206fb Stats: 357053 lines in 2887 files changed: 19089 ins; 13624 del; 324340 mod Merge jdk * Merge tag jdk-23+15 * Merge tag jdk-23+16 ------------- PR: https://git.openjdk.org/valhalla/pull/1198 From tobias.hartmann at oracle.com Tue Aug 13 09:02:09 2024 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 13 Aug 2024 11:02:09 +0200 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <2a7a90e2-4cb6-484c-bbdc-0fb42d2e2324@oracle.com> Vote: yes Best regards, Tobias On 8/12/24 21:25, Paul Sandoz wrote: > I hereby nominate Joe Darcy [3] to Valhalla Committer. > > Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the core-libs and compiler groups, and was lead of Project Coin. > > Votes are due by August 26th, 2024. > > Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [4]. > > Paul. > > [1] https://openjdk.org/census#valhalla > [2] https://github.com/openjdk/jdk/commits?author=jddarcy > [3] https://openjdk.org/census#darcy > [4] https://openjdk.org/projects/#committer-vote From thartmann at openjdk.org Tue Aug 13 10:52:25 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 10:52:25 GMT Subject: [lworld] RFR: 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values Message-ID: When preparing to merge field values, `InlineTypeNode::clone_with_phis` incorrectly looks at the field value instead of the field type to determine if Phis should be created. This leads to asserts or even incorrect execution, for example, in the case when the field type is Object, the field value in one branch is an InlineTypeNode but the field value in the other branch is not an InlineTypeNode. I added corresponding tests and also additional asserts that would catch the incorrect execution cases. Best regards, Tobias ------------- Commit messages: - 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values Changes: https://git.openjdk.org/valhalla/pull/1205/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1205&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336778 Stats: 101 lines in 3 files changed: 99 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1205.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1205/head:pull/1205 PR: https://git.openjdk.org/valhalla/pull/1205 From thartmann at openjdk.org Tue Aug 13 11:26:28 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 11:26:28 GMT Subject: [lworld] RFR: 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values [v2] In-Reply-To: References: Message-ID: <-lVCBzNIBv52ZKdNljBA3ZkqE4AfqcQdr5dy8J8KgZE=.96b2290e-5769-4e69-b7bf-ac6025197deb@github.com> > When preparing to merge field values, `InlineTypeNode::clone_with_phis` incorrectly looks at the field value instead of the field type to determine if Phis should be created. This leads to asserts or even incorrect execution, for example, in the case when the field type is Object, the field value in one branch is an InlineTypeNode but the field value in the other branch is not an InlineTypeNode. I added corresponding tests and also additional asserts that would catch the incorrect execution cases. > > Best regards, > Tobias Tobias Hartmann has updated the pull request incrementally with one additional commit since the last revision: Removed assert ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1205/files - new: https://git.openjdk.org/valhalla/pull/1205/files/b41fa631..f2f395ee Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1205&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1205&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1205.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1205/head:pull/1205 PR: https://git.openjdk.org/valhalla/pull/1205 From thartmann at openjdk.org Tue Aug 13 13:12:56 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 13:12:56 GMT Subject: [lworld] RFR: 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 In-Reply-To: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> References: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> Message-ID: On Tue, 6 Aug 2024 11:05:42 GMT, Christian Hagedorn wrote: > In the merge of JDK-8325746 for tag jdk-23+12, I've applied just a minimal refactoring to get things to work with as few changes as possible in Valhalla and decided to make a full refactoring separately with this patch. > > This patch includes the following: > - Improved/updated comments > - New `UnswitchCandidate` class: > - Since we can have multiple unswitch candidates with flat array checks, I've introduced a new class `UnswitchCandidate` which finds either a unique candidate or a list of flat array checks which can also be queried from this class. > - Offers methods `update_in_false/true_path_loop()` methods to remove the dominated unswitch candidates (previously in `OriginalLoop::remove_unswitch_candidate_from_loops()` > - Offers method `merge_flat_array_checks()` to create a merged flat array check bool (previously in `UnswitchedLoopSelector::find_unswitch_candidate()`) > - Updated `UnswitchedLoopSelector` class: > - Now only responsible for creating the loop unswitching loop selector and not for finding the unswitch candidate - this is passed into the class now. > - Clean up `PhaseIdealLoop::find_unswitch_candidates()` > - Clean up printing for `TraceLoopOpts` and `TraceLoopUnswitching`. Now the details are only guarded with `TraceLoopUnswitching` to reduce the noise with `TraceLoopOpts`. Example output with `TraceLoopUnswitching`: > > Loop Unswitching: > - Unswitch-Candidate-If: 519 If > - Loop-Selector-If: 2094 If > - True-Path-Loop (=Orig): 1346 Loop > - False-Path-Loop (=Clone): 2221 Loop > - Unswitched Flat Array Checks: > - 519 If -> 2226 If > - 922 If -> 2208 If > - 685 If -> 2359 If > - 580 If -> 2388 If > > > Thanks, > Christian Nice refactoring, looks good to me. As we discussed offline, some of this might be good candidates for upstreaming but looking at it in detail, I think the majority of new code is Valhalla specific so I'd say let's put this only into Valhalla for now. ------------- Marked as reviewed by thartmann (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1194#pullrequestreview-2235495571 From thartmann at openjdk.org Tue Aug 13 13:15:25 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 13:15:25 GMT Subject: [lworld] Integrated: 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values In-Reply-To: References: Message-ID: On Tue, 13 Aug 2024 10:46:36 GMT, Tobias Hartmann wrote: > When preparing to merge field values, `InlineTypeNode::clone_with_phis` incorrectly looks at the field value instead of the field type to determine if Phis should be created. This leads to asserts or even incorrect execution, for example, in the case when the field type is Object, the field value in one branch is an InlineTypeNode but the field value in the other branch is not an InlineTypeNode. I added corresponding tests and also additional asserts that would catch the incorrect execution cases. > > Best regards, > Tobias This pull request has now been integrated. Changeset: e30fca0e Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/e30fca0eca135955f1e33eddbed670ae5b6e232a Stats: 100 lines in 3 files changed: 98 ins; 0 del; 2 mod 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values ------------- PR: https://git.openjdk.org/valhalla/pull/1205 From bkilambi at openjdk.org Tue Aug 13 13:37:08 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 13 Aug 2024 13:37:08 GMT Subject: [lworld+fp16] RFR: 8338102: x86 backend support for newly added Float16 intrinsics. In-Reply-To: References: <6mX4Q9gmnOxreKBXQP2OEkNZkq5_gW_c8PrmQ0HRKGo=.fa7b91c0-2b55-47b0-9f85-d4c3652971c7@github.com> Message-ID: On Mon, 12 Aug 2024 10:40:31 GMT, Jatin Bhateja wrote: >>> FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. >> >> I can add implementation for these conversions (if it's not already taken by anyone else or you :) > >> > FTR, other missing intrinsics are conversion operations (Float16.longValue/intValue/doubleValue etc), x86 FP16 ISA has direct instructions for conversions from / to Float16 values.. >> >> I can add implementation for these conversions (if it's not already taken by anyone else or you :) > > Hi @Bhavana-Kilambi , this will be really helpful. > > Also, your comments have been incorporated, kindly approve if looks ok. @jatin-bhateja Thanks for your responses for my questions above. I am still not sure how useful this approach would be for aarch64 as we still would have to generate separate match rules anyway for every operation (unlike x86). But this idea does sound interesting and I am looking forward to a discussion with other members of OpenJDK community as well on this. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1196#issuecomment-2286269209 From thartmann at openjdk.org Tue Aug 13 14:43:31 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 14:43:31 GMT Subject: [lworld] RFR: 8336837: [lworld] Invalid monitor information in JVMState when buffering at return Message-ID: Similar to [JDK-8244519](https://bugs.openjdk.java.net/browse/JDK-8244519) / https://github.com/openjdk/valhalla/pull/36, while processing the JVMState of a buffer allocation at method return, we assert because there is no monitor information although the method is synchronized. The problem is that we call `shared_unlock` before buffering the return value (when returning a scalarized value object in non-scalarized form). The fix is to do that only afterwards. I also removed some stale code / comments and added corresponding tests. Best regards, Tobias ------------- Commit messages: - 8336837: [lworld] Invalid monitor information in JVMState when buffering at return Changes: https://git.openjdk.org/valhalla/pull/1206/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1206&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336837 Stats: 32 lines in 2 files changed: 21 ins; 11 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1206.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1206/head:pull/1206 PR: https://git.openjdk.org/valhalla/pull/1206 From rriggs at openjdk.org Tue Aug 13 14:50:01 2024 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 13 Aug 2024 14:50:01 GMT Subject: [lworld] Integrated: 8338252: [lworld] jdk/internal/ReferencedKeyTest fix merge and robustness In-Reply-To: References: Message-ID: On Mon, 12 Aug 2024 22:58:45 GMT, Roger Riggs wrote: > Fixup after merge. > Addressing latent issues with ReferencedKeyTest > - During the `methods()` tests the keys should be strongly held to avoid inadvertent GC collection and subsequent test failures (JDK-8336926) > - Merge changes from Valhalla to use String (identity objects) for keys instead of Integer and Long that are value objects. This pull request has now been integrated. Changeset: 9f6aaaf3 Author: Roger Riggs URL: https://git.openjdk.org/valhalla/commit/9f6aaaf331ac695f158af647e22ef38dc9e8e290 Stats: 43 lines in 1 file changed: 22 ins; 4 del; 17 mod 8338252: [lworld] jdk/internal/ReferencedKeyTest fix merge and robustness ------------- PR: https://git.openjdk.org/valhalla/pull/1201 From christian.hagedorn at oracle.com Tue Aug 13 15:29:15 2024 From: christian.hagedorn at oracle.com (Christian Hagedorn) Date: Tue, 13 Aug 2024 17:29:15 +0200 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <743d886e-05e9-4b27-bca8-3c1d40903140@oracle.com> Vote: yes Best regards, Christian On 12.08.24 21:25, Paul Sandoz wrote: > I hereby nominate Joe Darcy [3] to Valhalla Committer. > > Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the core-libs and compiler groups, and was lead of Project Coin. > > Votes are due by August 26th, 2024. > > Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [4]. > > Paul. > > [1] https://openjdk.org/census#valhalla > [2] https://github.com/openjdk/jdk/commits?author=jddarcy > [3] https://openjdk.org/census#darcy > [4] https://openjdk.org/projects/#committer-vote From chagedorn at openjdk.org Tue Aug 13 15:34:10 2024 From: chagedorn at openjdk.org (Christian Hagedorn) Date: Tue, 13 Aug 2024 15:34:10 GMT Subject: [lworld] RFR: 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 In-Reply-To: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> References: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> Message-ID: On Tue, 6 Aug 2024 11:05:42 GMT, Christian Hagedorn wrote: > In the merge of JDK-8325746 for tag jdk-23+12, I've applied just a minimal refactoring to get things to work with as few changes as possible in Valhalla and decided to make a full refactoring separately with this patch. > > This patch includes the following: > - Improved/updated comments > - New `UnswitchCandidate` class: > - Since we can have multiple unswitch candidates with flat array checks, I've introduced a new class `UnswitchCandidate` which finds either a unique candidate or a list of flat array checks which can also be queried from this class. > - Offers methods `update_in_false/true_path_loop()` methods to remove the dominated unswitch candidates (previously in `OriginalLoop::remove_unswitch_candidate_from_loops()` > - Offers method `merge_flat_array_checks()` to create a merged flat array check bool (previously in `UnswitchedLoopSelector::find_unswitch_candidate()`) > - Updated `UnswitchedLoopSelector` class: > - Now only responsible for creating the loop unswitching loop selector and not for finding the unswitch candidate - this is passed into the class now. > - Clean up `PhaseIdealLoop::find_unswitch_candidates()` > - Clean up printing for `TraceLoopOpts` and `TraceLoopUnswitching`. Now the details are only guarded with `TraceLoopUnswitching` to reduce the noise with `TraceLoopOpts`. Example output with `TraceLoopUnswitching`: > > Loop Unswitching: > - Unswitch-Candidate-If: 519 If > - Loop-Selector-If: 2094 If > - True-Path-Loop (=Orig): 1346 Loop > - False-Path-Loop (=Clone): 2221 Loop > - Unswitched Flat Array Checks: > - 519 If -> 2226 If > - 922 If -> 2208 If > - 685 If -> 2359 If > - 580 If -> 2388 If > > > Thanks, > Christian Thanks Tobias for your review! ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1194#issuecomment-2286536848 From chagedorn at openjdk.org Tue Aug 13 15:34:10 2024 From: chagedorn at openjdk.org (Christian Hagedorn) Date: Tue, 13 Aug 2024 15:34:10 GMT Subject: [lworld] Integrated: 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 In-Reply-To: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> References: <2JdOIp4CJA2Ub5-ilyWXUfJFWKX_t8UmVJPcZICkEZI=.c7d2bb56-1740-45c5-9193-90bf73adc1cd@github.com> Message-ID: On Tue, 6 Aug 2024 11:05:42 GMT, Christian Hagedorn wrote: > In the merge of JDK-8325746 for tag jdk-23+12, I've applied just a minimal refactoring to get things to work with as few changes as possible in Valhalla and decided to make a full refactoring separately with this patch. > > This patch includes the following: > - Improved/updated comments > - New `UnswitchCandidate` class: > - Since we can have multiple unswitch candidates with flat array checks, I've introduced a new class `UnswitchCandidate` which finds either a unique candidate or a list of flat array checks which can also be queried from this class. > - Offers methods `update_in_false/true_path_loop()` methods to remove the dominated unswitch candidates (previously in `OriginalLoop::remove_unswitch_candidate_from_loops()` > - Offers method `merge_flat_array_checks()` to create a merged flat array check bool (previously in `UnswitchedLoopSelector::find_unswitch_candidate()`) > - Updated `UnswitchedLoopSelector` class: > - Now only responsible for creating the loop unswitching loop selector and not for finding the unswitch candidate - this is passed into the class now. > - Clean up `PhaseIdealLoop::find_unswitch_candidates()` > - Clean up printing for `TraceLoopOpts` and `TraceLoopUnswitching`. Now the details are only guarded with `TraceLoopUnswitching` to reduce the noise with `TraceLoopOpts`. Example output with `TraceLoopUnswitching`: > > Loop Unswitching: > - Unswitch-Candidate-If: 519 If > - Loop-Selector-If: 2094 If > - True-Path-Loop (=Orig): 1346 Loop > - False-Path-Loop (=Clone): 2221 Loop > - Unswitched Flat Array Checks: > - 519 If -> 2226 If > - 922 If -> 2208 If > - 685 If -> 2359 If > - 580 If -> 2388 If > > > Thanks, > Christian This pull request has now been integrated. Changeset: 70b5a856 Author: Christian Hagedorn URL: https://git.openjdk.org/valhalla/commit/70b5a856ed5362afac438dc23e336573cc90581c Stats: 336 lines in 2 files changed: 196 ins; 99 del; 41 mod 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 Reviewed-by: thartmann ------------- PR: https://git.openjdk.org/valhalla/pull/1194 From darcy at openjdk.org Tue Aug 13 16:35:26 2024 From: darcy at openjdk.org (Joe Darcy) Date: Tue, 13 Aug 2024 16:35:26 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v8] In-Reply-To: References: Message-ID: > Adding comments and test cases for Float16.fma. Joe Darcy has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: - Respond to review feedback. - Merge branch 'lworld+fp16' into JDK-8334432 - Respond to review feedback. - Fix typo in test comments. - Add tests for subnromal results. - Add testing of neighbors of half-way cases for double -> Float16 conversion. - Added testing for valueOf(double). - Respond to review feedback. - Merge branch 'lworld+fp16' into JDK-8334432 - JDK-8334432: Refine Float16.fma ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1143/files - new: https://git.openjdk.org/valhalla/pull/1143/files/172eea95..2d357510 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=07 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1143&range=06-07 Stats: 1431 lines in 35 files changed: 1141 ins; 175 del; 115 mod Patch: https://git.openjdk.org/valhalla/pull/1143.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1143/head:pull/1143 PR: https://git.openjdk.org/valhalla/pull/1143 From duke at openjdk.org Tue Aug 13 16:51:10 2024 From: duke at openjdk.org (duke) Date: Tue, 13 Aug 2024 16:51:10 GMT Subject: [lworld+fp16] RFR: 8334432: Refine Float16.fma [v8] In-Reply-To: References: Message-ID: On Tue, 13 Aug 2024 16:35:26 GMT, Joe Darcy wrote: >> Adding comments and test cases for Float16.fma. > > Joe Darcy has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision: > > - Respond to review feedback. > - Merge branch 'lworld+fp16' into JDK-8334432 > - Respond to review feedback. > - Fix typo in test comments. > - Add tests for subnromal results. > - Add testing of neighbors of half-way cases for double -> Float16 conversion. > - Added testing for valueOf(double). > - Respond to review feedback. > - Merge branch 'lworld+fp16' into JDK-8334432 > - JDK-8334432: Refine Float16.fma @jddarcy Your change (at version 2d357510c6f14f2284ccb126f711877788e16402) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1143#issuecomment-2286689569 From thartmann at openjdk.org Tue Aug 13 17:02:12 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 13 Aug 2024 17:02:12 GMT Subject: [lworld] Integrated: 8336837: [lworld] Invalid monitor information in JVMState when buffering at return In-Reply-To: References: Message-ID: On Tue, 13 Aug 2024 14:38:34 GMT, Tobias Hartmann wrote: > Similar to [JDK-8244519](https://bugs.openjdk.java.net/browse/JDK-8244519) / https://github.com/openjdk/valhalla/pull/36, while processing the JVMState of a buffer allocation at method return, we assert because there is no monitor information although the method is synchronized. The problem is that we call `shared_unlock` before buffering the return value (when returning a scalarized value object in non-scalarized form). The fix is to do that only afterwards. I also removed some stale code / comments and added corresponding tests. > > Best regards, > Tobias This pull request has now been integrated. Changeset: a7f3d20b Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/a7f3d20b57bfd52021933d942c34cf82462bbc8a Stats: 32 lines in 2 files changed: 21 ins; 11 del; 0 mod 8336837: [lworld] Invalid monitor information in JVMState when buffering at return ------------- PR: https://git.openjdk.org/valhalla/pull/1206 From darcy at openjdk.org Wed Aug 14 08:01:09 2024 From: darcy at openjdk.org (Joe Darcy) Date: Wed, 14 Aug 2024 08:01:09 GMT Subject: [lworld+fp16] Integrated: 8334432: Refine Float16.fma In-Reply-To: References: Message-ID: On Fri, 21 Jun 2024 04:36:52 GMT, Joe Darcy wrote: > Adding comments and test cases for Float16.fma. This pull request has now been integrated. Changeset: be93540f Author: Joe Darcy Committer: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/be93540f9bed7b18e0e788f9635782554415d920 Stats: 325 lines in 2 files changed: 290 ins; 0 del; 35 mod 8334432: Refine Float16.fma Co-authored-by: Raffaello Giulietti Reviewed-by: jbhateja, rgiulietti ------------- PR: https://git.openjdk.org/valhalla/pull/1143 From thartmann at openjdk.org Wed Aug 14 09:27:28 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Wed, 14 Aug 2024 09:27:28 GMT Subject: [lworld] RFR: 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 Message-ID: We fail with `-XX:FastAllocateSizeLimit=0` because `Klass::_lh_instance_slow_path_bit` is set in the layout helper which is then used as object size for TLAB allocations in `MacroAssembler::store_inline_type_fields_to_buf`. The fix is to add the corresponding check. I'll add testing with `-XX:FastAllocateSizeLimit=0` to our (internal) stress job. Best regards, Tobias ------------- Commit messages: - 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 Changes: https://git.openjdk.org/valhalla/pull/1207/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1207&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336842 Stats: 16 lines in 2 files changed: 6 ins; 2 del; 8 mod Patch: https://git.openjdk.org/valhalla/pull/1207.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1207/head:pull/1207 PR: https://git.openjdk.org/valhalla/pull/1207 From thartmann at openjdk.org Wed Aug 14 13:16:23 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Wed, 14 Aug 2024 13:16:23 GMT Subject: [lworld] RFR: 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class Message-ID: <265f1dhUSvYFheso_nK6azmEA-glqMVsVb1wx3b-NCI=.f833183b-4c8d-4ecf-981e-d7e14a848cf6@github.com> I fixed the test to not synchronize on a value class and verified that the test still triggers the original bug. Best regards, Tobias ------------- Commit messages: - 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class Changes: https://git.openjdk.org/valhalla/pull/1208/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1208&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8326605 Stats: 10 lines in 1 file changed: 9 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/1208.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1208/head:pull/1208 PR: https://git.openjdk.org/valhalla/pull/1208 From thartmann at openjdk.org Wed Aug 14 13:22:03 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Wed, 14 Aug 2024 13:22:03 GMT Subject: [lworld] Integrated: 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class In-Reply-To: <265f1dhUSvYFheso_nK6azmEA-glqMVsVb1wx3b-NCI=.f833183b-4c8d-4ecf-981e-d7e14a848cf6@github.com> References: <265f1dhUSvYFheso_nK6azmEA-glqMVsVb1wx3b-NCI=.f833183b-4c8d-4ecf-981e-d7e14a848cf6@github.com> Message-ID: On Wed, 14 Aug 2024 13:12:01 GMT, Tobias Hartmann wrote: > I fixed the test to not synchronize on a value class and verified that the test still triggers the original bug. > > Best regards, > Tobias This pull request has now been integrated. Changeset: 24b25b6d Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/24b25b6d9f55e543c1b9d5e45569138cb98f1d71 Stats: 10 lines in 1 file changed: 9 ins; 0 del; 1 mod 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class ------------- PR: https://git.openjdk.org/valhalla/pull/1208 From thartmann at openjdk.org Wed Aug 14 14:08:01 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Wed, 14 Aug 2024 14:08:01 GMT Subject: [lworld] Integrated: 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 In-Reply-To: References: Message-ID: On Wed, 14 Aug 2024 09:21:56 GMT, Tobias Hartmann wrote: > We fail with `-XX:FastAllocateSizeLimit=0` because `Klass::_lh_instance_slow_path_bit` is set in the layout helper which is then used as object size for TLAB allocations in `MacroAssembler::store_inline_type_fields_to_buf`. The fix is to add the corresponding check. > > I'll add testing with `-XX:FastAllocateSizeLimit=0` to our (internal) stress job. > > Best regards, > Tobias This pull request has now been integrated. Changeset: 5ccdcefa Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/5ccdcefa187a83e5601327fef183d518af9c3494 Stats: 16 lines in 2 files changed: 6 ins; 2 del; 8 mod 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 ------------- PR: https://git.openjdk.org/valhalla/pull/1207 From thartmann at openjdk.org Thu Aug 15 09:09:31 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Thu, 15 Aug 2024 09:09:31 GMT Subject: [lworld] RFR: 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph Message-ID: We assert when processing the `load_unknown_inline` call of a flat array load with unknown type because the call already has top as control input. This can happen when a subgraph is dying but depending on the IGVN worklist order, we visit one of the to-be-removed nodes before that. Unfortunately, I was not able to extract a simple test. The fix is to return when encountering a top input. I also fixed a few outdated comments and did some minor refactoring. Best regards, Tobias ------------- Commit messages: - Renaming - 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph Changes: https://git.openjdk.org/valhalla/pull/1209/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1209&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8336782 Stats: 30 lines in 2 files changed: 2 ins; 4 del; 24 mod Patch: https://git.openjdk.org/valhalla/pull/1209.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1209/head:pull/1209 PR: https://git.openjdk.org/valhalla/pull/1209 From thartmann at openjdk.org Thu Aug 15 10:57:55 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Thu, 15 Aug 2024 10:57:55 GMT Subject: [lworld] Integrated: 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph In-Reply-To: References: Message-ID: On Thu, 15 Aug 2024 09:04:46 GMT, Tobias Hartmann wrote: > We assert when processing the `load_unknown_inline` call of a flat array load with unknown type because the call already has top as control input. This can happen when a subgraph is dying but depending on the IGVN worklist order, we visit one of the to-be-removed nodes before that. Unfortunately, I was not able to extract a simple test. The fix is to return when encountering a top input. > > I also fixed a few outdated comments and did some minor refactoring. > > Best regards, > Tobias This pull request has now been integrated. Changeset: e19d6796 Author: Tobias Hartmann URL: https://git.openjdk.org/valhalla/commit/e19d67967dcd1a6e58b42109f7366968c206f739 Stats: 30 lines in 2 files changed: 2 ins; 4 del; 24 mod 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph ------------- PR: https://git.openjdk.org/valhalla/pull/1209 From dlsmith at openjdk.org Sat Aug 17 00:38:30 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Sat, 17 Aug 2024 00:38:30 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps Message-ID: - Introduce the RuntimeType interface - Modify Class to implement RuntimeType - Introduce NullRestrictedClass as another implementation of RuntimeType - Provide ConstantDesc support for NullRestrictedClasses - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) - Basic functionality testing of ArrayCreation bootstraps ------------- Commit messages: - Fix whitespace - Introduced RuntimeType interface; provided ArrayCreation bootstraps Changes: https://git.openjdk.org/valhalla/pull/1210/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=00 Stats: 1029 lines in 9 files changed: 1027 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1210.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1210/head:pull/1210 PR: https://git.openjdk.org/valhalla/pull/1210 From liach at openjdk.org Sat Aug 17 12:06:58 2024 From: liach at openjdk.org (Chen Liang) Date: Sat, 17 Aug 2024 12:06:58 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps In-Reply-To: References: Message-ID: On Sat, 17 Aug 2024 00:28:25 GMT, Dan Smith wrote: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps Great work, few questions: 1. Does RuntimeType plan to model generic specialization or other restrictions, such as if a class must be a class or interface (such as for MethodHandles.Lookup) or not void (such as for method parameter types)? 2. Is it a good idea to make Class implement RuntimeType? This is weird in the perspective of primitives, that nothing can be cast to primitives and we have `void.class` as a RuntimeType too. 3. What's the interaction of strict fields with RuntimeType? Strict fields are necessary if a field's default value is not acceptable, can other fields still have RuntimeType as long as their initial values are accepted by the RuntimeType? ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1210#issuecomment-2294839933 From dlsmith at openjdk.org Sun Aug 18 01:05:52 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Sun, 18 Aug 2024 01:05:52 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps [v2] In-Reply-To: References: Message-ID: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps Dan Smith has updated the pull request incrementally with one additional commit since the last revision: Fix typo ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1210/files - new: https://git.openjdk.org/valhalla/pull/1210/files/ffa34d04..2c86ac12 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/1210.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1210/head:pull/1210 PR: https://git.openjdk.org/valhalla/pull/1210 From bkilambi at openjdk.org Mon Aug 19 13:13:30 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Mon, 19 Aug 2024 13:13:30 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations Message-ID: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. Both scalar and vector mid-end support along with aarch64 backend support are added. Tested all FP16 tests successfully on aarch64. ------------- Commit messages: - 8338061: Add support for FP16 unary and ternary operations Changes: https://git.openjdk.org/valhalla/pull/1211/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1211&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338061 Stats: 1404 lines in 29 files changed: 636 ins; 5 del; 763 mod Patch: https://git.openjdk.org/valhalla/pull/1211.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1211/head:pull/1211 PR: https://git.openjdk.org/valhalla/pull/1211 From vromero at openjdk.org Mon Aug 19 15:19:09 2024 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 19 Aug 2024 15:19:09 GMT Subject: Integrated: Merge lworld Message-ID: Merge lworld into lw5 ------------- Commit messages: - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - Merge lworld - ... and 33 more: https://git.openjdk.org/valhalla/compare/a7f3d20b...8ae6478e The merge commit only contains trivial merges, so no merge-specific webrevs have been generated. Changes: https://git.openjdk.org/valhalla/pull/1212/files Stats: 3561 lines in 74 files changed: 3508 ins; 6 del; 47 mod Patch: https://git.openjdk.org/valhalla/pull/1212.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1212/head:pull/1212 PR: https://git.openjdk.org/valhalla/pull/1212 From vromero at openjdk.org Mon Aug 19 15:19:13 2024 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 19 Aug 2024 15:19:13 GMT Subject: Integrated: Merge lworld In-Reply-To: References: Message-ID: On Mon, 19 Aug 2024 15:13:59 GMT, Vicente Romero wrote: > Merge lworld into lw5 This pull request has now been integrated. Changeset: 05b87e1b Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/05b87e1bba8131c1172c68e2cc096aa1f056e076 Stats: 762706 lines in 10127 files changed: 193234 ins; 202363 del; 367109 mod Merge lworld ------------- PR: https://git.openjdk.org/valhalla/pull/1212 From dlsmith at openjdk.org Mon Aug 19 15:21:42 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Mon, 19 Aug 2024 15:21:42 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps [v3] In-Reply-To: References: Message-ID: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps Dan Smith has updated the pull request incrementally with two additional commits since the last revision: - ArrayCreation.makeDefault: throw AssertionError, not IllegalArgumentException - Simplified primitive 'makeComputed' methods ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1210/files - new: https://git.openjdk.org/valhalla/pull/1210/files/2c86ac12..5a5e9b13 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=02 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=01-02 Stats: 25 lines in 1 file changed: 16 ins; 0 del; 9 mod Patch: https://git.openjdk.org/valhalla/pull/1210.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1210/head:pull/1210 PR: https://git.openjdk.org/valhalla/pull/1210 From dlsmith at openjdk.org Mon Aug 19 15:52:34 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Mon, 19 Aug 2024 15:52:34 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps [v4] In-Reply-To: References: Message-ID: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps Dan Smith has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision: - Merge branch 'lw5' into runtimetypes - ArrayCreation.makeDefault: throw AssertionError, not IllegalArgumentException - Simplified primitive 'makeComputed' methods - Fix typo - Fix whitespace - Introduced RuntimeType interface; provided ArrayCreation bootstraps ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1210/files - new: https://git.openjdk.org/valhalla/pull/1210/files/5a5e9b13..fd9c980f Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=03 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=02-03 Stats: 762706 lines in 10127 files changed: 193234 ins; 202363 del; 367109 mod Patch: https://git.openjdk.org/valhalla/pull/1210.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1210/head:pull/1210 PR: https://git.openjdk.org/valhalla/pull/1210 From paul.sandoz at oracle.com Mon Aug 19 16:41:09 2024 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 19 Aug 2024 16:41:09 +0000 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <7C90B1C0-8215-4DBF-92EF-C392B50066DA@oracle.com> Vote yes: Pau. From dlsmith at openjdk.org Mon Aug 19 19:16:12 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Mon, 19 Aug 2024 19:16:12 GMT Subject: RFR: API classes supporting RuntimeTypes and ArrayCreation bootstraps [v5] In-Reply-To: References: Message-ID: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps Dan Smith has updated the pull request incrementally with one additional commit since the last revision: Bug fix for ArrayCreation.constantEnumerated; added tests for int array creation ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1210/files - new: https://git.openjdk.org/valhalla/pull/1210/files/fd9c980f..7b87fa55 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=04 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1210&range=03-04 Stats: 315 lines in 3 files changed: 269 ins; 0 del; 46 mod Patch: https://git.openjdk.org/valhalla/pull/1210.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1210/head:pull/1210 PR: https://git.openjdk.org/valhalla/pull/1210 From jbhateja at openjdk.org Tue Aug 20 09:02:57 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 20 Aug 2024 09:02:57 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Mon, 19 Aug 2024 13:08:06 GMT, Bhavana Kilambi wrote: > This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. > Both scalar and vector mid-end support along with aarch64 backend support are added. > Tested all FP16 tests successfully on aarch64. Looks good to me, apart from one test comment. src/hotspot/share/opto/compile.cpp line 3691: > 3689: case Op_SqrtHF: > 3690: case Op_FmaHF: > 3691: // Count all float operations that may use FPU Hey @Bhavana-Kilambi , I am little worried about introducing specialized IR nodes as discussed in [pervious thread](https://github.com/openjdk/valhalla/pull/1196#issuecomment-2283627677), even though our current strategy fits well with C2 compilation flow without causing much disturbance, going forward we may need to support other reduced precision types BF16 (AVX10.2 has several ISA extensions for BF16), FP8 and INT8, creating unique IR may not be desirable, lets revisit this after features completion with conversion ops. test/hotspot/jtreg/compiler/c2/irTests/ConvF2HFIdealizationTests.java line 49: > 47: > 48: @DontCompile > 49: public void assertResult(Float16 fp16) { We can use @Check annotation to comparing the actual and expected results on the lines of following existing test https://github.com/openjdk/valhalla/blob/lworld%2Bfp16/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java jshell> for (int i = 0; i < 65504; i++) { ...> float fi = Float.float16ToFloat(Float.floatToFloat16((float)i)); ...> if (Float16.float16ToRawShortBits(Float16.sqrt(Float16.valueOf(fi))) != Float.floatToFloat16((float)Math.sqrt(fi))) { ...> System.out.println("Fist precision mismatch at = " + fi); break; ...> } ...> } We can even run through entire value ranges of Float16 type to empirically prove the equivalence.. ------------- PR Review: https://git.openjdk.org/valhalla/pull/1211#pullrequestreview-2247332113 PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1722947829 PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1722915975 From bkilambi at openjdk.org Tue Aug 20 09:05:56 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 20 Aug 2024 09:05:56 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 08:34:08 GMT, Jatin Bhateja wrote: >> This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. >> Both scalar and vector mid-end support along with aarch64 backend support are added. >> Tested all FP16 tests successfully on aarch64. > > test/hotspot/jtreg/compiler/c2/irTests/ConvF2HFIdealizationTests.java line 49: > >> 47: >> 48: @DontCompile >> 49: public void assertResult(Float16 fp16) { > > We can use @Check annotation to comparing the actual and expected results on the lines of following existing test https://github.com/openjdk/valhalla/blob/lworld%2Bfp16/test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOps.java > > > jshell> for (int i = 0; i < 65504; i++) { > ...> float fi = Float.float16ToFloat(Float.floatToFloat16((float)i)); > ...> if (Float16.float16ToRawShortBits(Float16.sqrt(Float16.valueOf(fi))) != Float.floatToFloat16((float)Math.sqrt(fi))) { > ...> System.out.println("Fist precision mismatch at = " + fi); break; > ...> } > ...> } > > > We can even run through entire value ranges of Float16 type to empirically prove the equivalence.. Sure, will do that. Thanks for reviewing. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1722960588 From bkilambi at openjdk.org Tue Aug 20 09:41:03 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 20 Aug 2024 09:41:03 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 08:55:39 GMT, Jatin Bhateja wrote: >> This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. >> Both scalar and vector mid-end support along with aarch64 backend support are added. >> Tested all FP16 tests successfully on aarch64. > > src/hotspot/share/opto/compile.cpp line 3691: > >> 3689: case Op_SqrtHF: >> 3690: case Op_FmaHF: >> 3691: // Count all float operations that may use FPU > > Hey @Bhavana-Kilambi , I am little worried about introducing specialized IR nodes as discussed in [pervious thread](https://github.com/openjdk/valhalla/pull/1196#issuecomment-2283627677), even though our current strategy fits well with C2 compilation flow without causing much disturbance, going forward we may need to support other reduced precision types BF16 (AVX10.2 has several ISA extensions for BF16), FP8 and INT8, creating unique IR may not be desirable, lets revisit this after features completion with conversion ops. Yes, I do agree we would have an explosion of IR nodes if we have to add support for INT8, FP8, Bfloat16 etc.. For now, I guess I will just create specialized IR until we have decided on how to get them integrated into a single IR using a secondary imm opcode (or if others in the community have any other idea). ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1723014298 From jbhateja at openjdk.org Tue Aug 20 10:06:34 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 20 Aug 2024 10:06:34 GMT Subject: [lworld+fp16] RFR: Merge lworld Message-ID: Merge latest lworld code into lworld+fp16. All existing Float16 tests are passing post merge. Best Regards, Jatin ------------- Commit messages: - Merge branch 'lworld' of http://github.com/openjdk/valhalla into merge_lworld2fp16 - 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph - 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 - 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class - 8336837: [lworld] Invalid monitor information in JVMState when buffering at return - 8337747: [lworld] Refactor Loop Unswitching code after merging in JDK-8325746 - 8338252: [lworld] jdk/internal/ReferencedKeyTest fix merge and robustness - 8336778: [lworld] C2 compilation hits "invalid node class" assert when merging object field values - Merge jdk - 8329178: Clean up jdk.accessibility native compilation - ... and 751 more: https://git.openjdk.org/valhalla/compare/be93540f...ca179277 The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld+fp16: https://webrevs.openjdk.org/?repo=valhalla&pr=1213&range=00.0 - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=1213&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/1213/files Stats: 527146 lines in 6066 files changed: 66202 ins; 122781 del; 338163 mod Patch: https://git.openjdk.org/valhalla/pull/1213.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1213/head:pull/1213 PR: https://git.openjdk.org/valhalla/pull/1213 From jbhateja at openjdk.org Tue Aug 20 10:13:52 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 20 Aug 2024 10:13:52 GMT Subject: [lworld+fp16] RFR: Merge lworld [v2] In-Reply-To: References: Message-ID: > Merge latest lworld code into lworld+fp16. > > All existing Float16 tests are passing post merge. > > Best Regards, > Jatin Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 13 commits: - Merge branch 'lworld' of http://github.com/openjdk/valhalla into merge_lworld2fp16 - 8334432: Refine Float16.fma Co-authored-by: Raffaello Giulietti Reviewed-by: jbhateja, rgiulietti - 8337605: Update description of constants in Float16 Reviewed-by: bkilambi, rgiulietti, jbhateja - 8338102: x86 backend support for newly added Float16 intrinsics. Reviewed-by: bkilambi - 8336406: Add support for FP16 binary operations Reviewed-by: jbhateja - 8330021: AArch64: Add backend support for FP16 add operation Reviewed-by: jbhateja - 8333852: Allow flat array layout for value based classes. Reviewed-by: bkilambi - 8329817: Augment prototype Float16 class Reviewed-by: jbhateja - Merge lworld - Merge lworld - ... and 3 more: https://git.openjdk.org/valhalla/compare/e19d6796...ca179277 ------------- Changes: https://git.openjdk.org/valhalla/pull/1213/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1213&range=01 Stats: 5503 lines in 74 files changed: 4700 ins; 4 del; 799 mod Patch: https://git.openjdk.org/valhalla/pull/1213.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1213/head:pull/1213 PR: https://git.openjdk.org/valhalla/pull/1213 From jbhateja at openjdk.org Tue Aug 20 10:13:55 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 20 Aug 2024 10:13:55 GMT Subject: [lworld+fp16] Integrated: Merge lworld In-Reply-To: References: Message-ID: On Tue, 20 Aug 2024 10:01:09 GMT, Jatin Bhateja wrote: > Merge latest lworld code into lworld+fp16. > > All existing Float16 tests are passing post merge. > > Best Regards, > Jatin This pull request has now been integrated. Changeset: 7ec27954 Author: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/7ec2795443ca42bfc4e6155b4e69329a887494e8 Stats: 527146 lines in 6066 files changed: 66202 ins; 122781 del; 338163 mod Merge lworld ------------- PR: https://git.openjdk.org/valhalla/pull/1213 From bkilambi at openjdk.org Tue Aug 20 10:25:56 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 20 Aug 2024 10:25:56 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 09:38:38 GMT, Bhavana Kilambi wrote: >> src/hotspot/share/opto/compile.cpp line 3691: >> >>> 3689: case Op_SqrtHF: >>> 3690: case Op_FmaHF: >>> 3691: // Count all float operations that may use FPU >> >> Hey @Bhavana-Kilambi , I am little worried about introducing specialized IR nodes as discussed in [pervious thread](https://github.com/openjdk/valhalla/pull/1196#issuecomment-2283627677), even though our current strategy fits well with C2 compilation flow without causing much disturbance, going forward we may need to support other reduced precision types BF16 (AVX10.2 has several ISA extensions for BF16), FP8 and INT8, creating unique IR may not be desirable, lets revisit this after features completion with conversion ops. > > Yes, I do agree we would have an explosion of IR nodes if we have to add support for INT8, FP8, Bfloat16 etc.. > For now, I guess I will just create specialized IR until we have decided on how to get them integrated into a single IR using a secondary imm opcode (or if others in the community have any other idea). I have the conversion ops and isFinite/Infinite/NaN intrinsics still left to complete. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1723076212 From jbhateja at openjdk.org Tue Aug 20 12:00:56 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Tue, 20 Aug 2024 12:00:56 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 10:22:57 GMT, Bhavana Kilambi wrote: >> Yes, I do agree we would have an explosion of IR nodes if we have to add support for INT8, FP8, Bfloat16 etc.. >> For now, I guess I will just create specialized IR until we have decided on how to get them integrated into a single IR using a secondary imm opcode (or if others in the community have any other idea). > > I have the conversion ops and isFinite/Infinite/NaN intrinsics still left to complete. I am in process of porting Float16 extension to VectorAPI into lworld+fp16, that will consolidate Float16 effort on lworld+fp16 branch and we can leverage the unified backend implementation. With VectorAPI we will also need to support Reductions for Float16 vectors :-) ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1723186677 From fparain at openjdk.org Tue Aug 20 12:22:27 2024 From: fparain at openjdk.org (Frederic Parain) Date: Tue, 20 Aug 2024 12:22:27 GMT Subject: [lworld] Integrated: 8338261: [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field Message-ID: Disable use of CDS in field layout tests in order to get a complete log of class layouts. Tested with Mach5, tier 1. ------------- Commit messages: - Disable CDS to get a complete layout log Changes: https://git.openjdk.org/valhalla/pull/1214/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1214&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338261 Stats: 3 lines in 3 files changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1214.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1214/head:pull/1214 PR: https://git.openjdk.org/valhalla/pull/1214 From fparain at openjdk.org Tue Aug 20 12:22:27 2024 From: fparain at openjdk.org (Frederic Parain) Date: Tue, 20 Aug 2024 12:22:27 GMT Subject: [lworld] Integrated: 8338261: [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field In-Reply-To: References: Message-ID: <_k2B3w50p3dfqr-vIbg3tWnk2H6Wb-Ytvr3j7YEa5cg=.6836daf7-f91e-4439-93b3-00b68a7919b3@github.com> On Tue, 20 Aug 2024 12:15:28 GMT, Frederic Parain wrote: > Disable use of CDS in field layout tests in order to get a complete log of class layouts. > > Tested with Mach5, tier 1. This pull request has now been integrated. Changeset: aa41ad4a Author: Frederic Parain URL: https://git.openjdk.org/valhalla/commit/aa41ad4aea034de837e5ffd36c58e0f9569e8e65 Stats: 3 lines in 3 files changed: 3 ins; 0 del; 0 mod 8338261: [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field ------------- PR: https://git.openjdk.org/valhalla/pull/1214 From thartmann at openjdk.org Tue Aug 20 12:55:02 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Tue, 20 Aug 2024 12:55:02 GMT Subject: [lworld] Integrated: 8338261: [lworld] FieldLayoutAnalyzer::checkSubClasses fails with NullPointerException: Cannot read field In-Reply-To: References: Message-ID: On Tue, 20 Aug 2024 12:15:28 GMT, Frederic Parain wrote: > Disable use of CDS in field layout tests in order to get a complete log of class layouts. > > Tested with Mach5, tier 1. I added a `@requires vm.flagless` with [JDK-8338262](https://bugs.openjdk.org/browse/JDK-8338262) and [JDK-8338263](https://bugs.openjdk.org/browse/JDK-8338263) to reduce noise in testing. That should be reverted. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1214#issuecomment-2298788508 From frederic.parain at oracle.com Tue Aug 20 19:09:40 2024 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 20 Aug 2024 15:09:40 -0400 Subject: CFV: New Valhalla Committer: Joe Darcy In-Reply-To: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> References: <4F196290-2F74-40C5-A510-9BE7F021A88D@oracle.com> Message-ID: <8bec3797-30c5-4f8f-8cfa-52e3de5cdff9@oracle.com> Vote: Yes Fred On 8/12/24 15:25, Paul Sandoz wrote: > I hereby nominate Joe Darcy [3] to Valhalla Committer. > > Joe (OpenJDK: darcy, GitHub: jddarcy) is a reviewer in the JDK project and has over 1,000 commits in mainline. [2] He is lead of the CSR group, a member of the core-libs and compiler groups, and was lead of Project Coin. > > Votes are due by August 26th, 2024. > > Only current Valhalla Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [4]. > > Paul. > > [1] https://openjdk.org/census#valhalla > [2] https://github.com/openjdk/jdk/commits?author=jddarcy > [3] https://openjdk.org/census#darcy > [4] https://openjdk.org/projects/#committer-vote From rriggs at openjdk.org Wed Aug 21 00:19:44 2024 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 21 Aug 2024 00:19:44 GMT Subject: [lworld] RFR: 8338698: [lworld] ObjectStreamClass should throw InstantiationException for abstract value class Message-ID: Updated ObjectStreamClass creation of newValueInstance to throw InstantiationException if the class is abstract or identity class. ------------- Commit messages: - 8338698: [lworld] ObjectStreamClass should throw InstantiationException for abstract value class Changes: https://git.openjdk.org/valhalla/pull/1215/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1215&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338698 Stats: 6 lines in 1 file changed: 5 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/1215.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1215/head:pull/1215 PR: https://git.openjdk.org/valhalla/pull/1215 From bkilambi at openjdk.org Wed Aug 21 16:02:25 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Wed, 21 Aug 2024 16:02:25 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 11:56:30 GMT, Jatin Bhateja wrote: >> I have the conversion ops and isFinite/Infinite/NaN intrinsics still left to complete. > > I am in process of porting Float16 extension to VectorAPI into lworld+fp16, that will consolidate Float16 effort on lworld+fp16 branch and we can leverage the unified backend implementation. With VectorAPI we will also need to support Reductions for Float16 vectors :-) @jatin-bhateja Thanks for the effort. It will be good to test Float16 with vectorAPI and add the missing operations. I think we need to support Float16 reductions in auto-vectorization as well? I dont think those operations are added for FP16. Also about the design part, I was thinking instead of modifying the existing opcode or adding a separate secondary opcode for the operations, can we reuse the same existing FP32 nodes for FP16 as well? We can add flags for the FP32 IR nodes to check if it is a FP16 op or eventually FP8 op ? That way we can reuse the same Value(), Ideal(), identity() methods and can modify those functions based on the value these flags returns in case we do not want a particular optimization to be applied for FP16/FP8? In the backend, we can use these flags to emit the correct instruction with the correct SIMD arrangement ? I guess this might introduce a lot of checks (to check value of the flags) in the compiler code.. What are your thoughts about it? ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1725346759 From bkilambi at openjdk.org Wed Aug 21 16:02:25 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Wed, 21 Aug 2024 16:02:25 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Wed, 21 Aug 2024 15:57:48 GMT, Bhavana Kilambi wrote: >> I am in process of porting Float16 extension to VectorAPI into lworld+fp16, that will consolidate Float16 effort on lworld+fp16 branch and we can leverage the unified backend implementation. With VectorAPI we will also need to support Reductions for Float16 vectors :-) > > @jatin-bhateja Thanks for the effort. It will be good to test Float16 with vectorAPI and add the missing operations. I think we need to support Float16 reductions in auto-vectorization as well? I dont think those operations are added for FP16. > Also about the design part, I was thinking instead of modifying the existing opcode or adding a separate secondary opcode for the operations, can we reuse the same existing FP32 nodes for FP16 as well? We can add flags for the FP32 IR nodes to check if it is a FP16 op or eventually FP8 op ? That way we can reuse the same Value(), Ideal(), identity() methods and can modify those functions based on the value these flags returns in case we do not want a particular optimization to be applied for FP16/FP8? In the backend, we can use these flags to emit the correct instruction with the correct SIMD arrangement ? I guess this might introduce a lot of checks (to check value of the flags) in the compiler code.. What are your thoughts about it? Also I will address review comments and post a new patch most likely after Aug 26th. I'll be on annual leave (plus UK bank holiday) from Aug 22nd to Aug 26th. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1725348829 From rriggs at openjdk.org Wed Aug 21 16:18:24 2024 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 21 Aug 2024 16:18:24 GMT Subject: [lworld] Integrated: 8338698: [lworld] ObjectStreamClass should throw InstantiationException for abstract value class In-Reply-To: References: Message-ID: On Wed, 21 Aug 2024 00:14:09 GMT, Roger Riggs wrote: > Updated ObjectStreamClass creation of newValueInstance to throw InstantiationException if the class is abstract or identity class. This pull request has now been integrated. Changeset: b81cb4ec Author: Roger Riggs URL: https://git.openjdk.org/valhalla/commit/b81cb4ec386c7bd3ee9fc09fa4e735eb2aff89da Stats: 6 lines in 1 file changed: 5 ins; 0 del; 1 mod 8338698: [lworld] ObjectStreamClass should throw InstantiationException for abstract value class ------------- PR: https://git.openjdk.org/valhalla/pull/1215 From jbhateja at openjdk.org Wed Aug 21 17:17:11 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Wed, 21 Aug 2024 17:17:11 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 11:56:30 GMT, Jatin Bhateja wrote: >> I have the conversion ops and isFinite/Infinite/NaN intrinsics still left to complete. > > I am in process of porting Float16 extension to VectorAPI into lworld+fp16, that will consolidate Float16 effort on lworld+fp16 branch and we can leverage the unified backend implementation. With VectorAPI we will also need to support Reductions for Float16 vectors :-) > @jatin-bhateja Thanks for the effort. It will be good to test Float16 with vectorAPI and add the missing operations. I think we need to support Float16 reductions in auto-vectorization as well? I dont think those operations are added for FP16. Also about the design part, I was thinking instead of modifying the existing opcode or adding a separate secondary opcode for the operations, can we reuse the same existing FP32 nodes for FP16 as well? We can add flags for the FP32 IR nodes to check if it is a FP16 op or eventually FP8 op ? With new flag in existing IR we may end up adding complimentary predication checks in existing floating point instruction selection patterns. > That way we can reuse the same Value(), Ideal(), identity() methods and can modify those functions based on the value these flags returns in case we do not want a particular optimization to be applied for FP16/FP8? Yes, idea is to reuse existing idealization routines, either by factoring out the meaty parts, or by inheritance. > In the backend, we can use these flags to emit the correct instruction with the correct SIMD arrangement ? I guess this might introduce a lot of checks (to check value of the flags) in the compiler code.. What are your thoughts about it? I agree. To me having a secondary opcode along with some code re-factoring around value / ideal / identity routines looks cleaner, but we can think over alternatives which fits best in existing infrastructure. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1725446668 From vromero at openjdk.org Wed Aug 21 19:21:21 2024 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 21 Aug 2024 19:21:21 GMT Subject: Integrated: Merge lworld In-Reply-To: <1vqPQAP9fZs6vXZ1fOPG6BaZR8nbLft3lK5x29q6f8g=.931431f4-cfad-48cf-86c6-2ecab379f9aa@github.com> References: <1vqPQAP9fZs6vXZ1fOPG6BaZR8nbLft3lK5x29q6f8g=.931431f4-cfad-48cf-86c6-2ecab379f9aa@github.com> Message-ID: On Wed, 21 Aug 2024 19:16:16 GMT, Vicente Romero wrote: > Merge branch 'lworld' into lw5_merge_lworld This pull request has now been integrated. Changeset: 1e16bb70 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/1e16bb7026a7fc9cbbe5720cfcf4c5015588f9cc Stats: 56 lines in 5 files changed: 17 ins; 6 del; 33 mod Merge lworld ------------- PR: https://git.openjdk.org/valhalla/pull/1216 From vromero at openjdk.org Wed Aug 21 19:21:20 2024 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 21 Aug 2024 19:21:20 GMT Subject: Integrated: Merge lworld Message-ID: <1vqPQAP9fZs6vXZ1fOPG6BaZR8nbLft3lK5x29q6f8g=.931431f4-cfad-48cf-86c6-2ecab379f9aa@github.com> Merge branch 'lworld' into lw5_merge_lworld ------------- Commit messages: - Merge branch 'lworld' into lw5_merge_lworld - 8336782: [lworld] CallStaticJavaNode::remove_useless_allocation does not handle dying subgraph - 8336842: [lworld] Return value buffering in TLAB does not work with -XX:FastAllocateSizeLimit=0 - 8326605: [lworld] SplitIfSharedFastLockBehindCastPP performs synchronization on a value class The merge commit only contains trivial merges, so no merge-specific webrevs have been generated. Changes: https://git.openjdk.org/valhalla/pull/1216/files Stats: 56 lines in 5 files changed: 17 ins; 6 del; 33 mod Patch: https://git.openjdk.org/valhalla/pull/1216.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1216/head:pull/1216 PR: https://git.openjdk.org/valhalla/pull/1216 From dlsmith at openjdk.org Wed Aug 21 20:36:16 2024 From: dlsmith at openjdk.org (Dan Smith) Date: Wed, 21 Aug 2024 20:36:16 GMT Subject: Integrated: API classes supporting RuntimeTypes and ArrayCreation bootstraps In-Reply-To: References: Message-ID: On Sat, 17 Aug 2024 00:28:25 GMT, Dan Smith wrote: > - Introduce the RuntimeType interface > - Modify Class to implement RuntimeType > - Introduce NullRestrictedClass as another implementation of RuntimeType > - Provide ConstantDesc support for NullRestrictedClasses > - Introduce reflection hooks to query RuntimeType of fields and arrays (just return Classes for now) > - Provide ArrayCreation bootstraps to create arrays with RuntimeTypes, initial values, and flags (no runtime support for new features yet?implementation bottoms out at Array.newInstance) > - Basic functionality testing of ArrayCreation bootstraps This pull request has now been integrated. Changeset: 2b309816 Author: Dan Smith URL: https://git.openjdk.org/valhalla/commit/2b309816c4f0777a4417b5a8dbdf65c043a79028 Stats: 1314 lines in 9 files changed: 1312 ins; 0 del; 2 mod API classes supporting RuntimeTypes and ArrayCreation bootstraps ------------- PR: https://git.openjdk.org/valhalla/pull/1210 From dsimms at openjdk.org Thu Aug 22 07:18:51 2024 From: dsimms at openjdk.org (David Simms) Date: Thu, 22 Aug 2024 07:18:51 GMT Subject: [lworld] RFR: 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object Message-ID: Adjust flatArrayKlass oop creation for 8139457 ------------- Commit messages: - 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object Changes: https://git.openjdk.org/valhalla/pull/1217/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1217&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338260 Stats: 8 lines in 2 files changed: 5 ins; 0 del; 3 mod Patch: https://git.openjdk.org/valhalla/pull/1217.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1217/head:pull/1217 PR: https://git.openjdk.org/valhalla/pull/1217 From thartmann at openjdk.org Thu Aug 22 09:21:21 2024 From: thartmann at openjdk.org (Tobias Hartmann) Date: Thu, 22 Aug 2024 09:21:21 GMT Subject: [lworld] RFR: 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object In-Reply-To: References: Message-ID: On Thu, 22 Aug 2024 07:14:05 GMT, David Simms wrote: > Adjust flatArrayKlass oop creation for 8139457 Looks good. ------------- Marked as reviewed by thartmann (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1217#pullrequestreview-2253958909 From fparain at openjdk.org Thu Aug 22 12:45:25 2024 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 22 Aug 2024 12:45:25 GMT Subject: [lworld] RFR: 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object In-Reply-To: References: Message-ID: On Thu, 22 Aug 2024 07:14:05 GMT, David Simms wrote: > Adjust flatArrayKlass oop creation for 8139457 LGTM ------------- Marked as reviewed by fparain (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1217#pullrequestreview-2254410666 From vromero at openjdk.org Thu Aug 22 17:54:02 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 17:54:02 GMT Subject: RFR: 8338766: [lw5] remove option enableNullRestrictedTypes and make null-restricted types a preview feature Message-ID: <6hhncF7NuGLpxYVmos4Ix2AEnAg2F-jzmBpH5KlIqyA=.8cb464b6-75f1-43d5-9db6-acc134220d4f@github.com> this fix is removing internal option `enableNullRestrictedTypes` and making null restricted types for value classes a preview feature ------------- Commit messages: - 8338766: [lw5] remove option enableNullRestrictedTypes and make null-restricted types a preview feature Changes: https://git.openjdk.org/valhalla/pull/1218/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1218&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338766 Stats: 195 lines in 29 files changed: 118 ins; 4 del; 73 mod Patch: https://git.openjdk.org/valhalla/pull/1218.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1218/head:pull/1218 PR: https://git.openjdk.org/valhalla/pull/1218 From vromero at openjdk.org Thu Aug 22 18:04:08 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 18:04:08 GMT Subject: RFR: 8338766: [lw5] remove option enableNullRestrictedTypes and make null-restricted types a preview feature [v2] In-Reply-To: <6hhncF7NuGLpxYVmos4Ix2AEnAg2F-jzmBpH5KlIqyA=.8cb464b6-75f1-43d5-9db6-acc134220d4f@github.com> References: <6hhncF7NuGLpxYVmos4Ix2AEnAg2F-jzmBpH5KlIqyA=.8cb464b6-75f1-43d5-9db6-acc134220d4f@github.com> Message-ID: > this fix is removing internal option `enableNullRestrictedTypes` and making null restricted types for value classes a preview feature Vicente Romero has updated the pull request incrementally with one additional commit since the last revision: ignore test RuntimeNullChecks ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1218/files - new: https://git.openjdk.org/valhalla/pull/1218/files/d3f1737e..37285f1a Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1218&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1218&range=00-01 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1218.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1218/head:pull/1218 PR: https://git.openjdk.org/valhalla/pull/1218 From vromero at openjdk.org Thu Aug 22 18:04:10 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 18:04:10 GMT Subject: Integrated: 8338766: [lw5] remove option enableNullRestrictedTypes and make null-restricted types a preview feature In-Reply-To: <6hhncF7NuGLpxYVmos4Ix2AEnAg2F-jzmBpH5KlIqyA=.8cb464b6-75f1-43d5-9db6-acc134220d4f@github.com> References: <6hhncF7NuGLpxYVmos4Ix2AEnAg2F-jzmBpH5KlIqyA=.8cb464b6-75f1-43d5-9db6-acc134220d4f@github.com> Message-ID: On Thu, 22 Aug 2024 17:49:15 GMT, Vicente Romero wrote: > this fix is removing internal option `enableNullRestrictedTypes` and making null restricted types for value classes a preview feature This pull request has now been integrated. Changeset: 0b42d33c Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/0b42d33c7528e18497ca1bf9ddbf70948eaf24af Stats: 195 lines in 29 files changed: 118 ins; 3 del; 74 mod 8338766: [lw5] remove option enableNullRestrictedTypes and make null-restricted types a preview feature ------------- PR: https://git.openjdk.org/valhalla/pull/1218 From vromero at openjdk.org Thu Aug 22 19:14:43 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 19:14:43 GMT Subject: RFR: 8338874: [lw5] add nullable types Message-ID: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> adding support for nullable types ------------- Commit messages: - 8338874: [lw5] add nullable types Changes: https://git.openjdk.org/valhalla/pull/1219/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338874 Stats: 329 lines in 6 files changed: 214 ins; 72 del; 43 mod Patch: https://git.openjdk.org/valhalla/pull/1219.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1219/head:pull/1219 PR: https://git.openjdk.org/valhalla/pull/1219 From vromero at openjdk.org Thu Aug 22 19:47:39 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 19:47:39 GMT Subject: RFR: 8338874: [lw5] add nullable types [v2] In-Reply-To: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> References: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> Message-ID: > adding support for nullable types Vicente Romero has updated the pull request incrementally with one additional commit since the last revision: minor changes ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1219/files - new: https://git.openjdk.org/valhalla/pull/1219/files/4b8b381d..de355909 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=00-01 Stats: 35 lines in 2 files changed: 2 ins; 33 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1219.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1219/head:pull/1219 PR: https://git.openjdk.org/valhalla/pull/1219 From vromero at openjdk.org Thu Aug 22 20:12:53 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 20:12:53 GMT Subject: RFR: 8338874: [lw5] add nullable types [v3] In-Reply-To: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> References: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> Message-ID: > adding support for nullable types Vicente Romero has updated the pull request incrementally with one additional commit since the last revision: additional changes ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1219/files - new: https://git.openjdk.org/valhalla/pull/1219/files/de355909..eb0e2c00 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=02 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=01-02 Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 mod Patch: https://git.openjdk.org/valhalla/pull/1219.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1219/head:pull/1219 PR: https://git.openjdk.org/valhalla/pull/1219 From vromero at openjdk.org Thu Aug 22 20:53:34 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 20:53:34 GMT Subject: RFR: 8338874: [lw5] add nullable types [v4] In-Reply-To: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> References: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> Message-ID: <45YO7jxopjAkk4ffHsYVPuwDlw92yfp0f_OPdj7YSWI=.9f5bfcff-3c65-4c46-9d05-7f8332956107@github.com> > adding support for nullable types Vicente Romero has updated the pull request incrementally with one additional commit since the last revision: add a flag for null restrictions for value classes only ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1219/files - new: https://git.openjdk.org/valhalla/pull/1219/files/eb0e2c00..72086bb5 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=03 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1219&range=02-03 Stats: 48 lines in 3 files changed: 38 ins; 2 del; 8 mod Patch: https://git.openjdk.org/valhalla/pull/1219.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1219/head:pull/1219 PR: https://git.openjdk.org/valhalla/pull/1219 From vromero at openjdk.org Thu Aug 22 20:53:35 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 22 Aug 2024 20:53:35 GMT Subject: Integrated: 8338874: [lw5] add nullable types In-Reply-To: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> References: <3pZfHkSK16buxoluQGWa32qHz0mOT1rDJ7-ggFZzCNU=.6e06617d-ab52-4474-a6b0-8d43a5a96f06@github.com> Message-ID: On Thu, 22 Aug 2024 19:09:41 GMT, Vicente Romero wrote: > adding support for nullable types This pull request has now been integrated. Changeset: dbf4f49a Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/dbf4f49a57e30e0daa14541adc6a66ea51860182 Stats: 327 lines in 7 files changed: 219 ins; 72 del; 36 mod 8338874: [lw5] add nullable types Co-authored-by: Maurizio Cimadamore ------------- PR: https://git.openjdk.org/valhalla/pull/1219 From dsimms at openjdk.org Fri Aug 23 05:28:17 2024 From: dsimms at openjdk.org (David Simms) Date: Fri, 23 Aug 2024 05:28:17 GMT Subject: [lworld] Integrated: 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object In-Reply-To: References: Message-ID: On Thu, 22 Aug 2024 07:14:05 GMT, David Simms wrote: > Adjust flatArrayKlass oop creation for 8139457 This pull request has now been integrated. Changeset: 884078f0 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/884078f06a2bf15e4be768dd09d0790b63d8e015 Stats: 8 lines in 2 files changed: 5 ins; 0 del; 3 mod 8338260: [lworld] assert(elements_end <= obj_end) failed: payload must fit in object Reviewed-by: thartmann, fparain ------------- PR: https://git.openjdk.org/valhalla/pull/1217 From mcimadamore at openjdk.org Fri Aug 23 10:30:28 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 10:30:28 GMT Subject: RFR: Add simple test for nullability warnings Message-ID: <31rb5hgwRBsnOFlZn3L460RUImJk4IS5lGqF93HbQCg=.6e5c9841-4b17-4c28-b742-d3c328f19113@github.com> This PR adds a simple test to validate the code in `Types` that generates the various nullability warnings. ------------- Commit messages: - Add null warning test Changes: https://git.openjdk.org/valhalla/pull/1220/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1220&range=00 Stats: 63 lines in 2 files changed: 63 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1220.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1220/head:pull/1220 PR: https://git.openjdk.org/valhalla/pull/1220 From mcimadamore at openjdk.org Fri Aug 23 13:13:20 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 13:13:20 GMT Subject: Integrated: Add simple test for nullability warnings In-Reply-To: <31rb5hgwRBsnOFlZn3L460RUImJk4IS5lGqF93HbQCg=.6e5c9841-4b17-4c28-b742-d3c328f19113@github.com> References: <31rb5hgwRBsnOFlZn3L460RUImJk4IS5lGqF93HbQCg=.6e5c9841-4b17-4c28-b742-d3c328f19113@github.com> Message-ID: On Fri, 23 Aug 2024 10:26:09 GMT, Maurizio Cimadamore wrote: > This PR adds a simple test to validate the code in `Types` that generates the various nullability warnings. This pull request has now been integrated. Changeset: 43e5a7e0 Author: Maurizio Cimadamore URL: https://git.openjdk.org/valhalla/commit/43e5a7e08b7a8f7b96c216f99ec8545c147560b7 Stats: 63 lines in 2 files changed: 63 ins; 0 del; 0 mod Add simple test for nullability warnings ------------- PR: https://git.openjdk.org/valhalla/pull/1220 From mcimadamore at openjdk.org Fri Aug 23 13:44:47 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 13:44:47 GMT Subject: RFR: Add inference support for nullable types Message-ID: This PR adds basic support for inference of generic method calls with nullabe types. To do that, we enhance both `lub` and `glb` to take nullness markers into account. Some tweaks were required to make the inference machinery *not* discard seemingly equivalent types such as `String!` and `String?`. ------------- Commit messages: - Merge branch 'lw5' into inference_nullable - Add inference support - Add null warning test Changes: https://git.openjdk.org/valhalla/pull/1221/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1221&range=00 Stats: 102 lines in 6 files changed: 88 ins; 0 del; 14 mod Patch: https://git.openjdk.org/valhalla/pull/1221.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1221/head:pull/1221 PR: https://git.openjdk.org/valhalla/pull/1221 From mcimadamore at openjdk.org Fri Aug 23 15:09:20 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 15:09:20 GMT Subject: Integrated: Add inference support for nullable types In-Reply-To: References: Message-ID: On Fri, 23 Aug 2024 13:40:06 GMT, Maurizio Cimadamore wrote: > This PR adds basic support for inference of generic method calls with nullabe types. > > To do that, we enhance both `lub` and `glb` to take nullness markers into account. > > Some tweaks were required to make the inference machinery *not* discard seemingly equivalent types such as `String!` and `String?`. This pull request has now been integrated. Changeset: 831c9fc0 Author: Maurizio Cimadamore URL: https://git.openjdk.org/valhalla/commit/831c9fc009316758a0724a4a7702ff32932c3ed2 Stats: 102 lines in 6 files changed: 88 ins; 0 del; 14 mod Add inference support for nullable types ------------- PR: https://git.openjdk.org/valhalla/pull/1221 From mcimadamore at openjdk.org Fri Aug 23 16:27:52 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 16:27:52 GMT Subject: RFR: Add option to disable parametric nullness by default Message-ID: This PR adds an option to disable parametric nullness by default, namely `-XDtvarUnspecifiedNullity`. This option alters the behavior of the various nullness predicates (which have now been moved to `Types`). Now we consult parametric nullity in two places: * when we compute the type of some generic class member (`Types::memberType`) * when we collect bounds for inference variables. If parameteric nullness is disabled, we simply drop nullness markers on the floor. ------------- Commit messages: - Add support to disable parametric nullity by default - Merge branch 'lw5' into parametric_null - Merge branch 'lw5' into inference_nullable - Add inference support - Add null warning test Changes: https://git.openjdk.org/valhalla/pull/1222/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1222&range=00 Stats: 157 lines in 15 files changed: 85 ins; 36 del; 36 mod Patch: https://git.openjdk.org/valhalla/pull/1222.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1222/head:pull/1222 PR: https://git.openjdk.org/valhalla/pull/1222 From mcimadamore at openjdk.org Fri Aug 23 19:43:21 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 23 Aug 2024 19:43:21 GMT Subject: Integrated: Add option to disable parametric nullness by default In-Reply-To: References: Message-ID: On Fri, 23 Aug 2024 16:22:03 GMT, Maurizio Cimadamore wrote: > This PR adds an option to disable parametric nullness by default, namely `-XDtvarUnspecifiedNullity`. > > This option alters the behavior of the various nullness predicates (which have now been moved to `Types`). > > Now we consult parametric nullity in two places: > * when we compute the type of some generic class member (`Types::memberType`) > * when we collect bounds for inference variables. > > If parameteric nullness is disabled, we simply drop nullness markers on the floor. This pull request has now been integrated. Changeset: 7b6967a2 Author: Maurizio Cimadamore URL: https://git.openjdk.org/valhalla/commit/7b6967a2c8decba3a7c0cd3e5c85646da9b6de12 Stats: 157 lines in 15 files changed: 85 ins; 36 del; 36 mod Add option to disable parametric nullness by default ------------- PR: https://git.openjdk.org/valhalla/pull/1222 From vromero at openjdk.org Sun Aug 25 19:34:31 2024 From: vromero at openjdk.org (Vicente Romero) Date: Sun, 25 Aug 2024 19:34:31 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability Message-ID: Enhancing the Signature attribute so that we can represent nullability and null restrictions ------------- Commit messages: - 8338910: [lw5] enhance the Signature attribute to represent nullability Changes: https://git.openjdk.org/valhalla/pull/1223/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1223&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8338910 Stats: 479 lines in 5 files changed: 470 ins; 1 del; 8 mod Patch: https://git.openjdk.org/valhalla/pull/1223.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1223/head:pull/1223 PR: https://git.openjdk.org/valhalla/pull/1223 From liach at openjdk.org Sun Aug 25 19:49:13 2024 From: liach at openjdk.org (Chen Liang) Date: Sun, 25 Aug 2024 19:49:13 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability In-Reply-To: References: Message-ID: On Sun, 25 Aug 2024 19:28:44 GMT, Vicente Romero wrote: > Enhancing the Signature attribute so that we can represent nullability and null restrictions This patch is missing null marker support on array dimensions. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1223#issuecomment-2308970447 From vromero at openjdk.org Sun Aug 25 19:54:44 2024 From: vromero at openjdk.org (Vicente Romero) Date: Sun, 25 Aug 2024 19:54:44 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability [v2] In-Reply-To: References: Message-ID: > Enhance the Signature attribute so that we can represent nullability and null restrictions Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: - merge with lw5 - 8338910: [lw5] enhance the Signature attribute to represent nullability ------------- Changes: https://git.openjdk.org/valhalla/pull/1223/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1223&range=01 Stats: 477 lines in 5 files changed: 471 ins; 1 del; 5 mod Patch: https://git.openjdk.org/valhalla/pull/1223.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1223/head:pull/1223 PR: https://git.openjdk.org/valhalla/pull/1223 From vromero at openjdk.org Mon Aug 26 02:25:14 2024 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 26 Aug 2024 02:25:14 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability In-Reply-To: References: Message-ID: On Sun, 25 Aug 2024 19:46:08 GMT, Chen Liang wrote: > This patch is missing null marker support on array dimensions. right, it is not complete, I'm also still adding tests ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1223#issuecomment-2309175460 From vromero at openjdk.org Tue Aug 27 15:34:50 2024 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 27 Aug 2024 15:34:50 GMT Subject: Integrated: 8339087: [lw5] remove parametric types related warnings Message-ID: removing (commenting) a couple of warnings for now ------------- Commit messages: - adding comments - 8339087: [lw5] remove parametric types related warnings Changes: https://git.openjdk.org/valhalla/pull/1224/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1224&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339087 Stats: 4 lines in 2 files changed: 2 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/1224.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1224/head:pull/1224 PR: https://git.openjdk.org/valhalla/pull/1224 From vromero at openjdk.org Tue Aug 27 15:34:50 2024 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 27 Aug 2024 15:34:50 GMT Subject: Integrated: 8339087: [lw5] remove parametric types related warnings In-Reply-To: References: Message-ID: <5Dp5NDAMehqN3mDs27TJKZeiegm1S4EDABx6uhlb0sU=.1c60e39d-2a37-48ef-9946-bc966e58d1d4@github.com> On Tue, 27 Aug 2024 15:27:47 GMT, Vicente Romero wrote: > removing (commenting) a couple of warnings for now This pull request has now been integrated. Changeset: 42b60282 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/42b60282344a9c48ce00318753239c4e12f9fa2a Stats: 4 lines in 2 files changed: 2 ins; 0 del; 2 mod 8339087: [lw5] remove parametric types related warnings ------------- PR: https://git.openjdk.org/valhalla/pull/1224 From bkilambi at openjdk.org Tue Aug 27 15:44:03 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 27 Aug 2024 15:44:03 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations [v2] In-Reply-To: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: > This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. > Both scalar and vector mid-end support along with aarch64 backend support are added. > Tested all FP16 tests successfully on aarch64. Bhavana Kilambi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Address review comments - Merge branch 'lworld+fp16' - 8338061: Add support for FP16 unary and ternary operations This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. Both scalar and vector mid-end support along with aarch64 backend support are added. Tested all FP16 tests successfully on aarch64. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1211/files - new: https://git.openjdk.org/valhalla/pull/1211/files/5d9b00f1..7538f860 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1211&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1211&range=00-01 Stats: 527175 lines in 6068 files changed: 66213 ins; 122783 del; 338179 mod Patch: https://git.openjdk.org/valhalla/pull/1211.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1211/head:pull/1211 PR: https://git.openjdk.org/valhalla/pull/1211 From bkilambi at openjdk.org Tue Aug 27 15:44:03 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 27 Aug 2024 15:44:03 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations [v2] In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 27 Aug 2024 15:40:12 GMT, Bhavana Kilambi wrote: >> This patch adds support for three unary operators - abs, neg and sqrt and a ternary operator - fma for FP16. >> Both scalar and vector mid-end support along with aarch64 backend support are added. >> Tested all FP16 tests successfully on aarch64. > > Bhavana Kilambi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: > > - Address review comments > - Merge branch 'lworld+fp16' > - 8338061: Add support for FP16 unary and ternary operations > > This patch adds support for three unary operators - abs, neg and sqrt > and a ternary operator - fma for FP16. > Both scalar and vector mid-end support along with aarch64 backend > support are added. > Tested all FP16 tests successfully on aarch64. test/jdk/java/foreign/enablenativeaccess/org/openjdk/foreigntest/libLinkerInvokerUnnamed.cpp line 25: > 23: > 24: #include "jni.h" > 25: #include "testlib_threads.hpp" I think this change was missed in the merge commit. I added it. ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1211#discussion_r1733115571 From rgiulietti at openjdk.org Tue Aug 27 15:48:22 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Tue, 27 Aug 2024 15:48:22 GMT Subject: [lworld+fp16] RFR: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases Message-ID: Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. ------------- Commit messages: - 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases Changes: https://git.openjdk.org/valhalla/pull/1225/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1225&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339076 Stats: 15 lines in 2 files changed: 10 ins; 1 del; 4 mod Patch: https://git.openjdk.org/valhalla/pull/1225.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1225/head:pull/1225 PR: https://git.openjdk.org/valhalla/pull/1225 From bkilambi at openjdk.org Tue Aug 27 15:57:22 2024 From: bkilambi at openjdk.org (Bhavana Kilambi) Date: Tue, 27 Aug 2024 15:57:22 GMT Subject: [lworld+fp16] RFR: 8338061: Add support for FP16 unary and ternary operations [v2] In-Reply-To: References: <0ApfBYsaUEghUv60I8CXYNUiV6m4xJPiNF6YGefM0tw=.b66e3bc5-a60f-46ea-9b88-612f12da3d6f@github.com> Message-ID: On Tue, 20 Aug 2024 08:59:56 GMT, Jatin Bhateja wrote: >> Bhavana Kilambi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: >> >> - Address review comments >> - Merge branch 'lworld+fp16' >> - 8338061: Add support for FP16 unary and ternary operations >> >> This patch adds support for three unary operators - abs, neg and sqrt >> and a ternary operator - fma for FP16. >> Both scalar and vector mid-end support along with aarch64 backend >> support are added. >> Tested all FP16 tests successfully on aarch64. > > Looks good to me, apart from one test comment. Hi @jatin-bhateja , I have addressed review comments. Please take a look. Also, I have noticed that after the recent merge with `lworld` , the vector tests - `compiler/vectorization/TestFloat16VectorOps.java` and `compiler/vectorization/TestFloat16VectorReinterpretConv.java` failed. Looks like none of the FP16 operations are getting vectorized either. Any idea why? Initially I suspected if any of the code from this patch - https://github.com/openjdk/valhalla/pull/1154#issuecomment-2208350696 got botched up during the merge but it looks like all of that code is fine and the test to test flat array vectorization - `test/hotspot/jtreg/compiler/valhalla/inlinetypes/TestFlatArrayVectorization.java` also passes. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1211#issuecomment-2312942922 From rgiulietti at openjdk.org Tue Aug 27 16:16:52 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Tue, 27 Aug 2024 16:16:52 GMT Subject: [lworld+fp16] RFR: 8339098: Add class jdk.internal.math.Float16Consts Message-ID: <-8N3XIpgiSTtz853R15L9JOEAxR0Tepgd9oVzg-mob4=.6cd93c60-fd83-463e-8b97-68185c057672@github.com> Adding class Float16Consts to parallel DoubleConsts and FloatConsts. ------------- Commit messages: - 8339098: Add class jdk.internal.math.Float16Consts Changes: https://git.openjdk.org/valhalla/pull/1226/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1226&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339098 Stats: 93 lines in 1 file changed: 93 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1226.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1226/head:pull/1226 PR: https://git.openjdk.org/valhalla/pull/1226 From paul.sandoz at oracle.com Tue Aug 27 16:23:11 2024 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 27 Aug 2024 16:23:11 +0000 Subject: Result: New Valhalla Committer: Joe Darcy Message-ID: <8B3D909D-AD06-4F04-AE47-C80484FBF630@oracle.com> Voting for Joe Darcy [1] is now closed. Yes: 7 Veto: 0 Abstain: 0 According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. Paul. [1] https://mail.openjdk.org/pipermail/valhalla-dev/2024-August/012930.html From darcy at openjdk.org Tue Aug 27 22:11:37 2024 From: darcy at openjdk.org (Joe Darcy) Date: Tue, 27 Aug 2024 22:11:37 GMT Subject: [lworld+fp16] RFR: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases In-Reply-To: References: Message-ID: On Tue, 27 Aug 2024 15:43:37 GMT, Raffaello Giulietti wrote: > Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. Looks good; thanks for catching this. ------------- Marked as reviewed by darcy (no project role). PR Review: https://git.openjdk.org/valhalla/pull/1225#pullrequestreview-2264554935 From duke at openjdk.org Wed Aug 28 11:18:31 2024 From: duke at openjdk.org (duke) Date: Wed, 28 Aug 2024 11:18:31 GMT Subject: [lworld+fp16] RFR: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases In-Reply-To: References: Message-ID: On Tue, 27 Aug 2024 15:43:37 GMT, Raffaello Giulietti wrote: > Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. @rgiulietti Your change (at version f607b32c53cc0dc39f256776332d821547093541) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1225#issuecomment-2315029607 From rgiulietti at openjdk.org Wed Aug 28 11:18:31 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Wed, 28 Aug 2024 11:18:31 GMT Subject: [lworld+fp16] RFR: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases In-Reply-To: References: Message-ID: On Tue, 27 Aug 2024 15:43:37 GMT, Raffaello Giulietti wrote: > Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. @jatin-bhateja this small PR needs a sponsor like you ;-) ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1225#issuecomment-2315031520 From mcimadamore at openjdk.org Wed Aug 28 12:05:11 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 28 Aug 2024 12:05:11 GMT Subject: RFR: Improve support for nullable types and arrays Message-ID: This PR improves general support for arrays with `!` and `?` nullness markers. The parser was parsing nullness markers associated to array brackets "backwards" - that is, when we have a type like this: String* []? []! * `*` should refer to `String` * `?` should refer to the outermost array type * `!` should refer to the innermost array type The same is true with an array creation expression, like: new String*[3]?[]! (in this case, one might even wonder what sense does it make to say `?` for an array dimension that is going to be filled with `null` elements, but that's for another day). Most of the `toString` implementation for array types and array trees were also wrong and they either dropped markers, or they displayed them in the "wrong order". So I've fixed that too (which helps when debugging). Finally, I realized that there were no nullness warnings generated when going from nullable arrays to non-nullable arrays, so I've added some more code in `Types` for that. ------------- Commit messages: - Revert spurious auto-formatting applied by IntelliJ - Fix parsing of multi-dimensional nullable array types - Initial work Changes: https://git.openjdk.org/valhalla/pull/1227/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1227&range=00 Stats: 237 lines in 12 files changed: 188 ins; 16 del; 33 mod Patch: https://git.openjdk.org/valhalla/pull/1227.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1227/head:pull/1227 PR: https://git.openjdk.org/valhalla/pull/1227 From mcimadamore at openjdk.org Wed Aug 28 14:10:46 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 28 Aug 2024 14:10:46 GMT Subject: Integrated: Improve support for nullable types and arrays In-Reply-To: References: Message-ID: On Wed, 28 Aug 2024 11:58:56 GMT, Maurizio Cimadamore wrote: > This PR improves general support for arrays with `!` and `?` nullness markers. > > The parser was parsing nullness markers associated to array brackets "backwards" - that is, when we have a type like this: > > > String* []? []! > > > * `*` should refer to `String` > * `?` should refer to the outermost array type > * `!` should refer to the innermost array type > > The same is true with an array creation expression, like: > > > new String*[3]?[]! > > > (in this case, one might even wonder what sense does it make to say `?` for an array dimension that is going to be filled with `null` elements, but that's for another day). > > Most of the `toString` implementation for array types and array trees were also wrong and they either dropped markers, or they displayed them in the "wrong order". So I've fixed that too (which helps when debugging). > > Finally, I realized that there were no nullness warnings generated when going from nullable arrays to non-nullable arrays, so I've added some more code in `Types` for that. This pull request has now been integrated. Changeset: 4999dfe1 Author: Maurizio Cimadamore URL: https://git.openjdk.org/valhalla/commit/4999dfe1c5679ff80e6d7fddabcb5d53bc3fd937 Stats: 237 lines in 12 files changed: 188 ins; 16 del; 33 mod Improve support for nullable types and arrays ------------- PR: https://git.openjdk.org/valhalla/pull/1227 From vromero at openjdk.org Thu Aug 29 22:45:06 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 29 Aug 2024 22:45:06 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability [v3] In-Reply-To: References: Message-ID: <8OpyCK6ooM_N_J5ArNx5Hb5QNix8Xv0nO9fuJkePbN4=.a3480b78-8246-406d-9c55-8d3158262499@github.com> > Enhance the Signature attribute so that we can represent nullability and null restrictions Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: - erasure was not removing nullness markers - changes to NullRestricted parsing - change to SignaturesImpl - addressing review comments - fixing bugs - adding test case - removing commented code - Merge with lw5 - fixing bugs - array support, addressing review comments - ... and 2 more: https://git.openjdk.org/valhalla/compare/4999dfe1...07a53fe5 ------------- Changes: https://git.openjdk.org/valhalla/pull/1223/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1223&range=02 Stats: 623 lines in 7 files changed: 612 ins; 6 del; 5 mod Patch: https://git.openjdk.org/valhalla/pull/1223.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1223/head:pull/1223 PR: https://git.openjdk.org/valhalla/pull/1223 From vromero at openjdk.org Thu Aug 29 22:45:06 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 29 Aug 2024 22:45:06 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability [v3] In-Reply-To: <8OpyCK6ooM_N_J5ArNx5Hb5QNix8Xv0nO9fuJkePbN4=.a3480b78-8246-406d-9c55-8d3158262499@github.com> References: <8OpyCK6ooM_N_J5ArNx5Hb5QNix8Xv0nO9fuJkePbN4=.a3480b78-8246-406d-9c55-8d3158262499@github.com> Message-ID: On Thu, 29 Aug 2024 22:42:18 GMT, Vicente Romero wrote: >> Enhance the Signature attribute so that we can represent nullability and null restrictions > > Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: > > - erasure was not removing nullness markers > - changes to NullRestricted parsing > - change to SignaturesImpl > - addressing review comments > - fixing bugs > - adding test case > - removing commented code > - Merge with lw5 > - fixing bugs > - array support, addressing review comments > - ... and 2 more: https://git.openjdk.org/valhalla/compare/4999dfe1...07a53fe5 src/java.base/share/classes/jdk/internal/classfile/impl/SignaturesImpl.java line 136: > 134: private RefTypeSig referenceTypeSig() { > 135: return switch (sig.charAt(sigp)) { > 136: case 'L' : classTypeSig(); should be `case 'L' : yield classTypeSig();` fixed in my local repo ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1731627402 From mcimadamore at openjdk.org Thu Aug 29 22:45:07 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 29 Aug 2024 22:45:07 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability [v2] In-Reply-To: References: Message-ID: On Sun, 25 Aug 2024 19:54:44 GMT, Vicente Romero wrote: >> Enhance the Signature attribute so that we can represent nullability and null restrictions > > Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: > > - merge with lw5 > - 8338910: [lw5] enhance the Signature attribute to represent nullability src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java line 5314: > 5312: append('T'); > 5313: append(type.tsym.name); > 5314: NullMarker nullMarker = type.getNullMarker(); Better to use the predicates in `Types` which take into account the command line options (e.g. whether to treat type-variables as `*` or not) ? src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java line 599: > 597: ClassType res = new ClassType(et.getEnclosingType(), List.nil(), et.tsym, et.getMetadata()); > 598: if (nm != NullMarker.UNSPECIFIED) { > 599: res = (ClassType) res.addMetadata(new TypeMetadata.NullMarker(nm)); We have an `asNullMarked` to create nullness-marked types test/langtools/tools/javac/nullability/NullabilitySignatureAttrTests.java line 91: > 89: } > 90: """, > 91: "LTest!;" My feeling is that the `!`/`?` should go _before_ the type in the sig attribute, similar to what we do for arrays and wildcards. Otherwise parsing becomes more complex. test/langtools/tools/javac/nullability/NullabilitySignatureAttrTests.java line 156: > 154: > 155: /*@Test > 156: void testCheckFieldSignature() throws Exception { This should be uncommented? ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1731050961 PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1731053700 PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1731057487 PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1731056375 From mcimadamore at openjdk.org Thu Aug 29 22:45:07 2024 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 29 Aug 2024 22:45:07 GMT Subject: RFR: 8338910: [lw5] enhance the Signature attribute to represent nullability [v3] In-Reply-To: <8OpyCK6ooM_N_J5ArNx5Hb5QNix8Xv0nO9fuJkePbN4=.a3480b78-8246-406d-9c55-8d3158262499@github.com> References: <8OpyCK6ooM_N_J5ArNx5Hb5QNix8Xv0nO9fuJkePbN4=.a3480b78-8246-406d-9c55-8d3158262499@github.com> Message-ID: On Thu, 29 Aug 2024 22:42:18 GMT, Vicente Romero wrote: >> Enhance the Signature attribute so that we can represent nullability and null restrictions > > Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 12 commits: > > - erasure was not removing nullness markers > - changes to NullRestricted parsing > - change to SignaturesImpl > - addressing review comments > - fixing bugs > - adding test case > - removing commented code > - Merge with lw5 > - fixing bugs > - array support, addressing review comments > - ... and 2 more: https://git.openjdk.org/valhalla/compare/4999dfe1...07a53fe5 src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java line 409: > 407: } else { > 408: for (Type param : t.allparams()) { > 409: if (param.getNullMarker() != NullMarker.UNSPECIFIED) { we should probably just delegate here? src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java line 439: > 437: > 438: @Override > 439: public Boolean visitCapturedType(CapturedType t, Set seen) { This can't be in a signature ------------- PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1736275899 PR Review Comment: https://git.openjdk.org/valhalla/pull/1223#discussion_r1736274368 From vromero at openjdk.org Thu Aug 29 22:45:08 2024 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 29 Aug 2024 22:45:08 GMT Subject: Integrated: 8338910: [lw5] enhance the Signature attribute to represent nullability In-Reply-To: References: Message-ID: On Sun, 25 Aug 2024 19:28:44 GMT, Vicente Romero wrote: > Enhance the Signature attribute so that we can represent nullability and null restrictions This pull request has now been integrated. Changeset: 77864c73 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/77864c7350202ca9f6ce25bc7a0d3ac848535f21 Stats: 623 lines in 7 files changed: 612 ins; 6 del; 5 mod 8338910: [lw5] enhance the Signature attribute to represent nullability ------------- PR: https://git.openjdk.org/valhalla/pull/1223 From jbhateja at openjdk.org Fri Aug 30 03:59:25 2024 From: jbhateja at openjdk.org (Jatin Bhateja) Date: Fri, 30 Aug 2024 03:59:25 GMT Subject: [lworld+fp16] RFR: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases In-Reply-To: References: Message-ID: On Tue, 27 Aug 2024 15:43:37 GMT, Raffaello Giulietti wrote: > Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. LGTM :-) ------------- Marked as reviewed by jbhateja (Committer). PR Review: https://git.openjdk.org/valhalla/pull/1225#pullrequestreview-2271092240 From rgiulietti at openjdk.org Fri Aug 30 03:59:25 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 30 Aug 2024 03:59:25 GMT Subject: [lworld+fp16] Integrated: 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases In-Reply-To: References: Message-ID: On Tue, 27 Aug 2024 15:43:37 GMT, Raffaello Giulietti wrote: > Corrects a bug whereby Float16.valueOf(long) could erroneously return an infinity. This pull request has now been integrated. Changeset: 89511345 Author: Raffaello Giulietti Committer: Jatin Bhateja URL: https://git.openjdk.org/valhalla/commit/89511345d279fa082643a143dd84850bd56627bf Stats: 15 lines in 2 files changed: 10 ins; 1 del; 4 mod 8339076: Float16.valueOf(long) incorrectly returns infinities in some cases Reviewed-by: darcy, jbhateja ------------- PR: https://git.openjdk.org/valhalla/pull/1225 From rgiulietti at openjdk.org Fri Aug 30 12:53:55 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 30 Aug 2024 12:53:55 GMT Subject: [lworld] RFR: 8339252: Add method float16Value() to BigInteger and BigDecimal Message-ID: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> This patch adds `float16Value()` to `BigInteger` and `BigDecimal`, as well as `Float16.valueOf(BigDecimal)`. ------------- Commit messages: - 8339252: Add method float16Value() to BigInteger and BigDecimal - Added valueOf(BigDecimal). - Merge lworld - 8334432: Refine Float16.fma - 8337605: Update description of constants in Float16 - 8338102: x86 backend support for newly added Float16 intrinsics. - 8336406: Add support for FP16 binary operations - 8330021: AArch64: Add backend support for FP16 add operation - 8333852: Allow flat array layout for value based classes. - 8329817: Augment prototype Float16 class - ... and 5 more: https://git.openjdk.org/valhalla/compare/e19d6796...01418c65 Changes: https://git.openjdk.org/valhalla/pull/1228/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1228&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339252 Stats: 5810 lines in 78 files changed: 4998 ins; 4 del; 808 mod Patch: https://git.openjdk.org/valhalla/pull/1228.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1228/head:pull/1228 PR: https://git.openjdk.org/valhalla/pull/1228 From rgiulietti at openjdk.org Fri Aug 30 13:01:09 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 30 Aug 2024 13:01:09 GMT Subject: [lworld+fp16] RFR: 8339252: Add method float16Value() to BigInteger and BigDecimal [v2] In-Reply-To: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> References: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> Message-ID: > This patch adds `float16Value()` to `BigInteger` and `BigDecimal`, as well as `Float16.valueOf(BigDecimal)`. Raffaello Giulietti has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/1228/files - new: https://git.openjdk.org/valhalla/pull/1228/files/01418c65..01418c65 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1228&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1228&range=00-01 Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/1228.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1228/head:pull/1228 PR: https://git.openjdk.org/valhalla/pull/1228 From raffaello.giulietti at oracle.com Fri Aug 30 13:01:27 2024 From: raffaello.giulietti at oracle.com (Raffaello Giulietti) Date: Fri, 30 Aug 2024 15:01:27 +0200 Subject: [lworld] RFR: 8339252: Add method float16Value() to BigInteger and BigDecimal In-Reply-To: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> References: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> Message-ID: I erroneously had my PR in lworld. It is now in lworld+fp16. Greetings Raffaello On 2024-08-30 14:53, Raffaello Giulietti wrote: > This patch adds `float16Value()` to `BigInteger` and `BigDecimal`, as well as `Float16.valueOf(BigDecimal)`. > > ------------- > > Commit messages: > - 8339252: Add method float16Value() to BigInteger and BigDecimal > - Added valueOf(BigDecimal). > - Merge lworld > - 8334432: Refine Float16.fma > - 8337605: Update description of constants in Float16 > - 8338102: x86 backend support for newly added Float16 intrinsics. > - 8336406: Add support for FP16 binary operations > - 8330021: AArch64: Add backend support for FP16 add operation > - 8333852: Allow flat array layout for value based classes. > - 8329817: Augment prototype Float16 class > - ... and 5 more: https://git.openjdk.org/valhalla/compare/e19d6796...01418c65 > > Changes: https://git.openjdk.org/valhalla/pull/1228/files > Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1228&range=00 > Issue: https://bugs.openjdk.org/browse/JDK-8339252 > Stats: 5810 lines in 78 files changed: 4998 ins; 4 del; 808 mod > Patch: https://git.openjdk.org/valhalla/pull/1228.diff > Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1228/head:pull/1228 > > PR: https://git.openjdk.org/valhalla/pull/1228 From rgiulietti at openjdk.org Fri Aug 30 16:30:32 2024 From: rgiulietti at openjdk.org (Raffaello Giulietti) Date: Fri, 30 Aug 2024 16:30:32 GMT Subject: [lworld+fp16] RFR: 8339252: Add method float16Value() to BigInteger and BigDecimal [v2] In-Reply-To: References: <_wd00b-OPYrY0ZvETxGXJKg_bGsb0KWX6iUpk5k1NmI=.b2c31b21-ac67-4da9-95d5-38ebaae4d4ff@github.com> Message-ID: On Fri, 30 Aug 2024 13:01:09 GMT, Raffaello Giulietti wrote: >> This patch adds `float16Value()` to `BigInteger` and `BigDecimal`, as well as `Float16.valueOf(BigDecimal)`. > > Raffaello Giulietti has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. I erroneously had this PR on the `lworld` branch, then moved it to the `lworld+fp16` branch, where it belongs. However, the webrevs now show the diffs w.r.t. `lworld`, which is quite confusing. In addition, the "Files changed" tab shows diffs for `Float16.valueOf(long)` that should not appear in `lworld+fp16`. Short of closing this PR and open it again in the right branch (but I'm not sure this works without conflicts), I'm clueless. So I'm asking for advice. ------------- PR Comment: https://git.openjdk.org/valhalla/pull/1228#issuecomment-2321872829 From vromero at openjdk.org Fri Aug 30 22:14:19 2024 From: vromero at openjdk.org (Vicente Romero) Date: Fri, 30 Aug 2024 22:14:19 GMT Subject: Integrated: 8339339: [lw5] javac should issue an error if a null-restricted field is left uninitialized, fix override related warnings Message-ID: syncing with the spec, javac was issuing a warning if a null-restricted field was left uninitialized, this should be an error. Also warnings related to method overriding were not being issued. ------------- Commit messages: - 8339339: [lw5] javac should issue an error if a null-restricted field is left uninitialized, fix override related warnings Changes: https://git.openjdk.org/valhalla/pull/1229/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1229&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8339339 Stats: 378 lines in 10 files changed: 291 ins; 19 del; 68 mod Patch: https://git.openjdk.org/valhalla/pull/1229.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1229/head:pull/1229 PR: https://git.openjdk.org/valhalla/pull/1229 From vromero at openjdk.org Fri Aug 30 22:14:20 2024 From: vromero at openjdk.org (Vicente Romero) Date: Fri, 30 Aug 2024 22:14:20 GMT Subject: Integrated: 8339339: [lw5] javac should issue an error if a null-restricted field is left uninitialized, fix override related warnings In-Reply-To: References: Message-ID: On Fri, 30 Aug 2024 22:09:25 GMT, Vicente Romero wrote: > syncing with the spec, javac was issuing a warning if a null-restricted field was left uninitialized, this should be an error. Also warnings related to method overriding were not being issued. This pull request has now been integrated. Changeset: b82fd23f Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/b82fd23fb0b22c1267ca9a19548eb27f43e8115b Stats: 378 lines in 10 files changed: 291 ins; 19 del; 68 mod 8339339: [lw5] javac should issue an error if a null-restricted field is left uninitialized, fix override related warnings ------------- PR: https://git.openjdk.org/valhalla/pull/1229