-
Notifications
You must be signed in to change notification settings - Fork 76
8255120: C2: assert(outer->outcnt() >= phis + 2 && outer->outcnt() <= phis + 2 + stores + 1) failed: only phis #113
Conversation
… phis + 2 + stores + 1) failed: only phis
👋 Welcome back vlivanov! A progress list of the required criteria for merging this PR into |
/label remove hotspot |
@iwanowww |
@iwanowww |
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 to me. Can JDK-8255705 be closed as duplicate or are there other performance issues left?
@iwanowww 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 8 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
Thanks, Tobias.
I don't have a conclusive answer yet. The fix does improve MPEG score a bit, but it is still slower than jdk-16+20.
Will conduct additional performance experiments before deciding what to do with JDK-8255705. |
/integrate |
@iwanowww Since your change was applied there have been 17 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 0148adf. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
JDK-8255000 made post-loopopts IGVN processing predictable, but also reordered it with macro node expansion.
It turned out that macro node expansion is sensitive to narrower types post-loopopts IGVN generates and it either triggers the aforementioned assert or produces less efficient code (some runtime checks aren't eliminated anymore and it adds up some overhead, see JDK-8255705 for details).
I'll file a separate RFE to make macro node expansion more robust (and relax the problematic assert), but for now (jdk16) I propose to restore the original order of transformations.
Testing:
Progress
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk16 pull/113/head:pull/113
$ git checkout pull/113