-
Notifications
You must be signed in to change notification settings - Fork 728
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 helper functions for off heap technology changes #18303
Add helper functions for off heap technology changes #18303
Conversation
36afdda
to
e22fa55
Compare
e22fa55
to
b2d8647
Compare
@dmitripivkine @amicic @0xdaryl @zl-wang @vijaysun-omr Can I please get a review for this PR |
b2d8647
to
a36d342
Compare
{ | ||
TR_ASSERT_FATAL_WITH_NODE(arrayObject, | ||
TR::Compiler->om.isOffHeapAllocationEnabled(), | ||
"This helpler shouldn't be called if off heap allocation is disabled.\n"); |
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.
Typo "helpler"
* The compilation object | ||
* | ||
* \param arrayNode | ||
* The aray object node |
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.
Typo "aray"
* | ||
* \param elementSize | ||
* Array element size | ||
* |
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.
Can we clarify what the strideNode
means here ? It seems clearer how to use elementSize
with indexNode
to come up with an "offset tree" but what role a strideNode
plays is less clear because it is not as clearly defined. Maybe an example/pseudocode would help.
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 have updated the comment and variable name. Does it help or should I add more?
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.
GC part of the change looks good, this is exact replica of off-heap prototype
a36d342
to
2bba7fc
Compare
Here's my build to verify that this PR doesn't cause any failures |
if (TR::Compiler->om.isOffHeapAllocationEnabled()) | ||
{ | ||
arrayAddressNode = generateDataAddrLoadTrees(comp, arrayNode); | ||
if (offsetNode) |
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.
Does this node also need to be tagged as an internal pointer ?
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.
Offset node doesn't contain an address; just an offset value relative to the array object pointer. So we should be ok not marking it as an internal pointer.
@vijaysun-omr can I get another set of review? |
Jenkins test sanity all jdk11 |
@VermaSh please let me know when this is ready to be tested. Thanks |
2bba7fc
to
d9a0a6b
Compare
FYI you'll need to update the JITServer |
d9a0a6b
to
4fd4624
Compare
Launched an other personal build to verify changes |
My personal build passed without any failures. @vijaysun-omr this is ready for review/merge. OMR PR: eclipse-omr/omr#7150 must be merged before this. I'll remove the |
The OMR PR is merged, but you may need it to get promoted first, before we can merge it. Please remove the WIP and comment when it is ready for review. |
@vijaysun-omr This is ready for review. I'll post a comment here once my OMR changes are promoted. |
@vijaysun-omr OMR changes were promoted. This should be safe to merge. |
Jenkins test sanity all jdk11 |
Jenkins test sanity zlinux jdk11 |
Failure don't seem to be related to this PR. Probably just need to rebase. |
Add definitions for j9gc_off_heap_allocation_enabled and J9::ObjectModel::isOffHeapAllocationEnabled() Source: eclipse-openj9#18163 Signed-off-by: midronij <[email protected]>
New APIs are: `generateDataAddrLoadTrees` `generateArrayAddressNode` `generateArrayStartTrees` `generateOffsetNode` Signed-off-by: Shubham Verma <[email protected]>
4fd4624
to
e766755
Compare
@vijaysun-omr Previous build failures should be gone now. |
Jenkins test sanity all jdk11 |
Build failures aren't related to this PR. They will be fixed in adoptium/TKG#492. |
Add helper functions to generate IL for array access and queries to check if off heap allocation is enabled. This includes minimum set of off heap changes needed to unblock #17969.
depends on eclipse-omr/omr#7150