-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8322996: BoxLockNode creation fails with assert(reg < CHUNK_SIZE) failed: sanity #17370
Conversation
👋 Welcome back dlunden! A progress list of the required criteria for merging this PR into |
Webrevs
|
@robcasloz @vnkozlov: I have now made the changes we've discussed. Please have a look when you have some time to spare. |
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.
The fix itself looks good to me.
Would it make sense, for better coverage, to add a couple of additional test cases that exercise the boundaries of the condition that is tested? E.g. one with one synchronized
statement less than the current one and one with one synchronized
statement more.
I have experimented with such test cases (various edge cases) and as a result found a related (but separate) issue from this one. I was planning to add these additional tests for that separate issue, to not introduce unnecessary test failures before that fix is integrated. Maybe it is better to add the additional tests directly as part of this changeset instead? |
If the additional tests trigger failures after this fix is applied, I would suggest including them as part of the fix to the separate issue. |
@dlunde This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 209 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@robcasloz, @vnkozlov) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
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. I have one question.
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.
Thanks @robcasloz and @vnkozlov. I've now rerun tests and the PR is ready for integration. Please sponsor! /integrate |
/sponsor |
Going to push as commit 69586e7.
Your commit was automatically rebased without conflicts. |
@robcasloz @dlunde Pushed as commit 69586e7. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This changeset fixes an issue where deeply nested synchronized statements triggered an assert in C2.
Changes:
BoxLockNode
with a slot index that cannot fit in aRegMask
. This is similar to how we handle the case when we do not have space to represent arguments inopto/matcher.cpp
RegMask::can_represent
to take an additional and optional size argument to facilitate reuse. The default size value, 1, corresponds to the previous functionality. Rewritecan_represent_arg
to directly callcan_represent(reg, SlotsPerVecZ)
.Testing:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/17370/head:pull/17370
$ git checkout pull/17370
Update a local copy of the PR:
$ git checkout pull/17370
$ git pull https://git.openjdk.org/jdk.git pull/17370/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 17370
View PR using the GUI difftool:
$ git pr show -t 17370
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/17370.diff
Webrev
Link to Webrev Comment