Hello, we are currently preparing the PPC64 Valhalla port. The main functionality (without --enable-preview) is basically repaired and we are porting the basic Valhalla functionality. We would like to avoid complete breakage of the port when Valhalla enters mainline.
We have some issues and questions: 1. Should we create a PR in the Valhalla Repo next week or provide a PR which can be merged into https://github.com/openjdk/jdk/pull/31122 one week later? 2. We were told to skip Valhalla features which are not strictly required. So, we could disable the following flags in vm_version_ppc.cpp: InlineTypePassFieldsAsArgs, InlineTypeReturnedAsFields, UseArrayFlattening, UseFieldFlattening, UseNullFreeNonAtomicValueFlattening, UseNullableAtomicValueFlattening, UseNullFreeAtomicValueFlattening, UseNullableNonAtomicValueFlattening, UseArrayLoadStoreProfile, UseACmpProfile, UseAcmpFastPath Does that make sense or are there other proposals to keep optional optimizations off? 3. What is the recommendation to get the JTREG tests green? Can we get more @requires checks for optional Valhalla features such that tests which need them don't complain? 4. What is the recommended way to report bugs in shared code or improvement proposals? I have added comments to the PR. Thanks for any advice and help! Best regards, Martin Von: porters-dev <[email protected]> im Auftrag von Dan Smith <[email protected]> Datum: Dienstag, 6. Januar 2026 um 00:22 An: [email protected] <[email protected]> Betreff: Porting to support JEP 401: Value Classes and Objects (Preview) Hello, porters! The Valhalla project has been implementing JEP 401: Value Classes and Objects (Preview) in a branch of our Github repository. Over the next few months, we will be preparing to target and integrate the JEP. This will be a very large commit touching many components of HotSpot, so now is a good time to start aligning your ports with the anticipated changes and ensuring conformance with the updated specifications. Some pointers: Value Classes JEP: https://openjdk.org/jeps/401 Supplementary strict field initialization JEP: https://openjdk.org/jeps/8350458 JVMS changes (value classes): https://cr.openjdk.org/~dlsmith/jep401/jep401-20251210/specs/value-objects-jvms.html JVMS changes (field initialization): https://cr.openjdk.org/~dlsmith/jep401/jep401-20251210/specs/strict-fields-jvms.html Git branch: https://github.com/openjdk/valhalla/tree/lworld As a baseline, you may want to focus on *compliance* without adopting any of the value object *optimizations*. A compliant JVM will recognize and validate the ACC_IDENTITY and ACC_STRICT_INIT flags, and will follow the new semantics for 'acmp', 'ifnull', and 'monitorenter'; but can ignore the contents of 'LoadableDescriptors', and need not support scalarized or flattened object encodings. Please reach out to valhalla-dev, or to me personally, if you need any help or clarifications to align with these changes.
