-
Notifications
You must be signed in to change notification settings - Fork 738
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
Add implementation for new JNI functions in Valhalla #19460
Labels
Comments
theresa-m
added a commit
to theresa-m/openj9
that referenced
this issue
May 30, 2024
This change is needed to support @ImplicitlyConstructible and @NullRestricted annotations for functional tests. See eclipse-openj9#19459 In this change: - J9ROMCLASS_IS_VALUE macro checks for ACC_IDENTITY flag instead of ACC_VALUE - Remove J9AccValueType from codebase There is more work to be done to fully remove ACC_VALUE (eclipse-openj9#18829) such as removing CFR_ACC_VALUE and adding runtime class file verification checks. Because functional value type tests are not able to run currently due to a recent update of the extensions repository I am making just a few changes toward getting those working. I am also removing the assert in JVM_IsNullRestrictedArray which is triggered when building OpenJ9. This method can't be implemented right now because OpenJ9 doesn't have support for null restricted arrays yet. See eclipse-openj9#17340 eclipse-openj9#19460
theresa-m
added a commit
to theresa-m/openj9
that referenced
this issue
May 30, 2024
This change is needed to support @ImplicitlyConstructible and @NullRestricted annotations for functional tests. See eclipse-openj9#19459 In this change: - J9ROMCLASS_IS_VALUE macro checks for ACC_IDENTITY flag instead of ACC_VALUE - Remove J9AccValueType from codebase There is more work to be done to fully remove ACC_VALUE (eclipse-openj9#18829) such as removing CFR_ACC_VALUE and adding runtime class file verification checks. Because functional value type tests are not able to run currently due to a recent update of the extensions repository I am making just a few changes toward getting those working. I am also removing the assert in JVM_IsNullRestrictedArray which is triggered when building OpenJ9. This method can't be implemented right now because OpenJ9 doesn't have support for null restricted arrays yet. See eclipse-openj9#17340 eclipse-openj9#19460
theresa-m
added a commit
to theresa-m/openj9
that referenced
this issue
May 30, 2024
This change is needed to support @ImplicitlyConstructible and @NullRestricted annotations for functional tests. See eclipse-openj9#19459 In this change: - J9ROMCLASS_IS_VALUE macro checks for ACC_IDENTITY flag instead of ACC_VALUE - Remove J9AccValueType from codebase There is more work to be done to fully remove ACC_VALUE (eclipse-openj9#18829) such as removing CFR_ACC_VALUE and adding runtime class file verification checks. Because functional value type tests are not able to run currently due to a recent update of the extensions repository I am making just a few changes toward getting those working. I am also removing the assert in JVM_IsNullRestrictedArray which is triggered when building OpenJ9. This method can't be implemented right now because OpenJ9 doesn't have support for null restricted arrays yet. See eclipse-openj9#17340 eclipse-openj9#19460
theresa-m
added a commit
to theresa-m/openj9
that referenced
this issue
Jun 3, 2024
This change is needed to support @ImplicitlyConstructible and @NullRestricted annotations for functional tests. See eclipse-openj9#19459 In this change: - J9ROMCLASS_IS_VALUE macro checks for ACC_IDENTITY flag instead of ACC_VALUE - Remove J9AccValueType from codebase There is more work to be done to fully remove ACC_VALUE (eclipse-openj9#18829) such as removing CFR_ACC_VALUE and adding runtime class file verification checks. Because functional value type tests are not able to run currently due to a recent update of the extensions repository I am making just a few changes toward getting those working. I am also removing the assert in JVM_IsNullRestrictedArray which is triggered when building OpenJ9. This method can't be implemented right now because OpenJ9 doesn't have support for null restricted arrays yet. See eclipse-openj9#17340 eclipse-openj9#19460
AswathySK
pushed a commit
to AswathySK/openj9
that referenced
this issue
Jun 4, 2024
This change is needed to support @ImplicitlyConstructible and @NullRestricted annotations for functional tests. See eclipse-openj9#19459 In this change: - J9ROMCLASS_IS_VALUE macro checks for ACC_IDENTITY flag instead of ACC_VALUE - Remove J9AccValueType from codebase There is more work to be done to fully remove ACC_VALUE (eclipse-openj9#18829) such as removing CFR_ACC_VALUE and adding runtime class file verification checks. Because functional value type tests are not able to run currently due to a recent update of the extensions repository I am making just a few changes toward getting those working. I am also removing the assert in JVM_IsNullRestrictedArray which is triggered when building OpenJ9. This method can't be implemented right now because OpenJ9 doesn't have support for null restricted arrays yet. See eclipse-openj9#17340 eclipse-openj9#19460
Before closing this issue please re-enable ValueTypeSystemArraycopyTests, ValueTypeArrayTests and ValueTypeArrayTestsJIT in the functional/Valhalla test suite. They are disabled #19646 due to reliance on these JNI functions. |
Reopening since the fixing change was reverted #20109 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There are 3 new JNI functions added in Valhalla:
OpenJ9 needs to add implementation for them.
Support for
JVM_IsImplicitlyConstructibleClass()
We just need to check the ImplicitCreation attribute added in New ImplicitCreation Attribute in project Valhalla #17234
Support for
JVM_IsNullRestrictedArray()
andJVM_NewNullRestrictedArray()
Currently, each
J9Class
has a pointer to its arrayClass andJ9arrayClass
has a pointer to leafComponentType.We need to create 2 array classes for null-restricted value type. One nullable array class and one null restricted array class. The exiting
J9Class->arrayClass
can be used as nullable arrayClass. We can create a new field inJ9Class
callednullrestrictedArrayClass
, and let it point to null restricted array class(which is created byJVM_NewNullRestrictedArray()
). We can use a bit inJ9ArrayClass->classFlags
to indicate if it is null restricted array (prohibiting storingnull
to its element). The implementation ofJVM_IsNullRestrictedArray()
can check this bit. The implementation ofJVM_NewNullRestrictedArray()
might follow the exampleJVM_NewArray()
.The text was updated successfully, but these errors were encountered: