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.
- causes
-
JDK-8368799 [lworld] Heapwalking functions may report array classes several times
-
- Open
-
- relates to
-
JDK-8370880 [lworld] Split ciObjArrayKlass into ciRefArrayKlass and ciFlatArrayKlass
-
- Open
-
-
JDK-8371457 [lworld] C2: Incorrect type is used for array creation
-
- Open
-
-
JDK-8371505 [lworld] Suspicious FlatArrayKlass creations
-
- Open
-
-
JDK-8190936 [lworld] Missing SA support causes "sun.jvm.hotspot.utilities.AssertionFailure: illegal bci"
-
- Open
-
-
JDK-8371506 [lworld] TypeAryKlassPtr::cast_to_refined_array_klass_ptr looks suspicious
-
- Open
-
-
JDK-8371507 [lworld] Suspicious RefArrayKlass creation
-
- Open
-
-
JDK-8366806 [lworld] JDI test failures
-
- Resolved
-
-
JDK-8367263 [lworld] fix compiler/valhalla/inlinetypes/TestIntrinsics.java after current merges of JDK-8352737 and JDK-8366705
-
- Resolved
-
-
JDK-8366668 [lworld] Follow-up work from the array metadata re-work
-
- Resolved
-
-
JDK-8370341 [lworld] More follow-up work from the array metadata re-work
-
- Resolved
-
-
JDK-8369835 [lworld] Intrinsify new instance-accepting array unsafe operations
-
- Resolved
-
- links to
-
Commit(lworld)
openjdk/valhalla/94cca4b7
-
Review(lworld)
openjdk/valhalla/1452