-
Notifications
You must be signed in to change notification settings - Fork 729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ValueTypeArrayTestsJIT test failures #19913
Comments
I didn't realize cnathelper.cpp is vm code, I will make updates there and see how many tests are resolved. |
@theresa-m, today the JIT tests whether an array is null-restricted by checking whether the |
That is correct. Also a J9Class may now have two J9ArrayClass structures, one is the |
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19914, eclipse-openj9/openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19914, eclipse-openj9/openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19914, eclipse-openj9/openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19914, eclipse-openj9/openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized method `jdk/internal/value/ValueClass.newArrayInstance` (2) Add VP fixed class constraint if `ValueClass.newArrayInstance` creates null restricted array (3) Rename `isArrayCompTypePrimitiveValueType` to `isArrayNullRestricted` to reflect the updated logic Update `isArrayNullRestricted` on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19914, eclipse-openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19914, eclipse-openj9/openj9#19913 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19913, eclipse-openj9/openj9#19914 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19913, eclipse-openj9/openj9#19914 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature (6) Enable previous disabled JIT Valhalla functional tests Fixes: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
Load the source array and the destination array from the saved temp instead of commoning the original nodes incorrectly across blocks. Related: eclipse-openj9/openj9#19913, eclipse-openj9/openj9#19914 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
An update: #20291 and #20112 together fix this test failure on X86, but not on other platforms such as Z, Power, or Aarch64. I looked at the failure on Z and here is why it fails: ValueTypeArrayTests.runTest uses static void runTest(Object[] arr, Object sourceVal, int staticArrayKind, int staticSourceKind) throws Throwable {
boolean caughtThrowable = false;
int actualArrayKind = arr instanceof PointPV[]
? PRIM_TYPE
: arr instanceof PointV[]
? VAL_TYPE
: arr instanceof SomeIface[]
? IFACE_TYPE
: OBJ_TYPE;
Here is the problem with the generated @theresa-m @hangshao0 It's a bit unclear to me here is that: Should the cpIndex that the JIT gets here point to the null restricted array class for
|
In the current version of Valhalla, the nullable array and null restricted array share the same constant pool class entry ( Rather than relying on constant pool, not sure if JIT can get the |
Thanks for the clarification @hangshao0! After some offline discussion with @hzongaro, the JIT will wait for CheckedType constants to be ready first. |
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
(1) Add recognized methods from jdk/internal/value/ValueClass and jdk/internal/value/NullRestrictedCheckedType (2) Add VP fixed class constraint if ValueClass.newArrayInstance creates null restricted array using NullRestrictedCheckedType (3) Rename isArrayCompTypePrimitiveValueType to isArrayNullRestricted to reflect the updated logic Update isArrayNullRestricted on how to determine whether or not an array is a null restricted array (4) Disable transformation based on type hint which is no longer sufficient enough to decide whether or not the array is null restricted or not (5) If flattenable arrays are enabled, do not create fixed class constraint for parm array class based on signature since both nullable and null restricted arrays share the same signature Related: eclipse-openj9#19913, eclipse-openj9#19914, eclipse-openj9#19708 Signed-off-by: Annabelle Huo <[email protected]>
Once #19911 is merged ValueTypeArrayTests can create null restricted arrays.
There are a few test failures in the JIT variations. I suspect most of them are related to the change from NullPointerException to ArrayStoreException when null is attempted to be set to a null restricted array element.
fyi @a7ehuo @hzongaro
The text was updated successfully, but these errors were encountered: