[lworld] RFR: 8366705: [lworld] Re-work of arrays meta-data

Frederic Parain fparain at openjdk.org
Tue Sep 2 16:44:58 UTC 2025


Since the removal of Q-types and the notion that nullability was not part of the Java type, there was an awkward situation because nullable arrays of value types and null free arrays of value types had each a different Java mirror when they were in fact supposed to have the same Java type.
In order to accommodate to the new situation, that arrays can have properties (nullability, flatness, atomicity, etc.) that are not part of their Java type, the 1-1 relationship between the *ArrayKlass and the Java mirror must be broken.
The proposed solution is to dedicate one instance of ObjArrayKlass to represent the Java type of the array in the JVM, and have this instance being the counterpart of the Java mirror of the array, and have several instances of RefArrayKlass and FlatArrayKlass that represent the refinements of the Java array type. Each RefArrayKlass/FlatArrayKlass encodes the characteristic of a Java array for a given element type and a set of properties.

-------------

Commit messages:
 - Moved get_Klass() back to protected and updated usages
 - Merge branch 'array_klasses' of github.com:fparain/valhalla into array_klasses
 - Linked TODOs to JDK-8366668
 - Multidim array fix
 - Cleanup T_FLAT_ELEMENT related code
 - Fix for isAssignableFrom + tests
 - Problem listing due to 8366440
 - EnableValhalla by default
 - More JIT fixes
 - Test fix
 - ... and 53 more: https://git.openjdk.org/valhalla/compare/bd1d97b7...810a36fa

Changes: https://git.openjdk.org/valhalla/pull/1452/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1452&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8366705
  Stats: 4736 lines in 177 files changed: 2940 ins; 1061 del; 735 mod
  Patch: https://git.openjdk.org/valhalla/pull/1452.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1452/head:pull/1452

PR: https://git.openjdk.org/valhalla/pull/1452


More information about the valhalla-dev mailing list