Skip to content
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

Deprecate ShrinkWrapping - Part I #3166

Merged
merged 1 commit into from
Oct 10, 2018

Conversation

fjeremic
Copy link
Contributor

@fjeremic fjeremic commented Oct 5, 2018

ShrinkWrapping is currently disabled on all platforms due to functional
issues. It has been disabled for several years and it's benefit is
questionable at best given the compile time costs.

This commit folds away some code related to ShrinkWrapping so as to not
cause build breaks when the optimization is removed from OMR. There
will be a subsequent "Part II" PR which will remove all the rest of the
code which is dependent on OMR.

Issue: eclipse-omr/omr#2107

Signed-off-by: Filip Jeremic [email protected]

ShrinkWrapping is currently disabled on all platforms due to functional
issues. It has been disabled for several years and it's benefit is
questionable at best given the compile time costs.

This commit folds away some code related to ShrinkWrapping so as to not
cause build breaks when the optimization is removed from OMR. There
will be a subsequent "Part II" PR which will remove all the rest of the
code which is dependent on OMR.

Signed-off-by: Filip Jeremic <[email protected]>
@fjeremic fjeremic force-pushed the remove-shrink-wrapping branch from a657139 to 864dbaf Compare October 5, 2018 19:55
@fjeremic
Copy link
Contributor Author

fjeremic commented Oct 9, 2018

Preemptively launching builds here:

Jenkins test sanity all JDK8

if (!p || p->get((uint32_t)regIndex))
cursor = generateMemSrc1Instruction(cg(),TR::InstOpCode::Op_st, firstNode, new (trHeapMemory()) TR::MemoryReference(stackPtr, argSize, TR::Compiler->om.sizeofReferenceAddress(), cg()), machine->getPPCRealRegister(regIndex), cursor);
cursor = generateMemSrc1Instruction(cg(),TR::InstOpCode::Op_st, firstNode, new (trHeapMemory()) TR::MemoryReference(stackPtr, argSize, TR::Compiler->om.sizeofReferenceAddress(), cg()), machine->getPPCRealRegister(regIndex), cursor);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is not related to the changes in this PR but more an observation I'll make about the code that's already there and want to document it somewhere.

The use of om.sizeofReferenceAddress() in this register preserving code seems wrong to me. This code should be preserving the full register size for the target bitness rather than asking the object model what the size of a reference is. As luck (design?) would have it, on 64-bit this always returns '8' and on 32-bit returns '4' regardless of whether compressed refs is enabled or not.

There are some curiosities that need to be sorted out here (like what should sizeOfReferenceAddress be returning from the object model, what breaks if that changes). I'll open a separate issue for that investigation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gita-omr FYI the above comment.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Will wait for the issue that @0xdaryl is going to open.

@0xdaryl 0xdaryl merged commit 6f122a4 into eclipse-openj9:master Oct 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants