-
Notifications
You must be signed in to change notification settings - Fork 767
JITServer AOT cache array class support #19138
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
JITServer AOT cache array class support #19138
Conversation
787ed28
to
9a27425
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I submitted a partial review of the code.
737768b
to
b19a4ea
Compare
@mpirvu This PR is ready for review now. |
b19a4ea
to
d545c1f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall. I mostly have some questions and some requests for comments.
jenkins test sanity xlinuxjit,zlinuxjit,alinux64jit jdk21 |
This commit enables AOT cache serialization and load for methods that refer to array classes in their relocation and validation records, specifically object arrays and multidimensional primitive arrays. Since such classes share the same ROMClass named "[L", we disambiguate them in the AOT cache by using the full array class signature instead of the ROMClass name. We build the ROMClass hash for an array class by combining the ROMClass hash of the "[L" object array class, the ROMClass hash of the base component class, and the number of array dimensions. Signed-off-by: Alexey Khrabrov <[email protected]>
The tests have passed: https://openj9-jenkins.osuosl.org/job/PullRequest-OpenJ9/5481/. I'll force push the remaining changes now, which are only additional comments to clarify the points raised in the review. |
d545c1f
to
f31c509
Compare
Since tests have passed, I am merging this PR. |
I should have officially approved this PR. For the record, the fact that I have merged it means that I have approved it. |
This draft PR implements object array class support for JITServer AOT cache. Currently untested.This PR enables AOT cache serialization and load for methods that refer to array classes in their relocation and validation records, specifically object arrays and multidimensional primitive arrays. Since such classes share the same ROMClass named
[L
, we disambiguate them in the AOT cache by using the full array class signature instead of the ROMClass name. We build the ROMClass hash for an array class by combining the ROMClass hash of the[L
object array class, the ROMClass hash of the base component class, and the number of array dimensions.