8253353: Crash in C2: guarantee(n != NULL) failed: No Node #135
Conversation
👋 Welcome back kvn! A progress list of the required criteria for merging this PR into |
/contributor add felix.yang@huawei.com |
@vnkozlov Could not parse
|
/contributor add fyang |
@vnkozlov |
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.
@vnkozlov 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 no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
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.
/test |
/integrate |
@vnkozlov Since your change was applied there has been 1 commit pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 1926765. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Nesting loops for this case reaches 400+. But the type of IdeaLoopTree::_nest field is uint8 (the maximum value allowed is 255). The test passed with the following fix proposed by @RealFYang:
I think increase size to
unsigned short
(16 bits) is enough for this value. We will bailout C2 compilation due to big IR graph (MaxNodeLimit = 80000) before we can construct MAX_USHORT (65535) nested loops. And I added asserts to catch such case if it happens.New regression test is added.
Passed hs-tier1 - 3 testing.
Progress
Issue
Reviewers
Contributors
<fyang@openjdk.org>
Download
$ git fetch https://git.openjdk.java.net/jdk16 pull/135/head:pull/135
$ git checkout pull/135