8287851: C2 crash: assert(t->meet(t0) == t) failed: Not monotonic #104
Conversation
/label add hotspot-compiler-dev |
👋 Welcome back jbhateja! A progress list of the required criteria for merging this PR into |
@jatin-bhateja |
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 we close JDK-8287855 as duplicate then?
I'll run testing and report back once it passed.
@jatin-bhateja 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 2 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 |
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!
Hi @TobiHartmann , yes l will resolve 8287855 manually with comments, will check-in once you share test results. |
Thanks. All tests passed. |
Thanks @TobiHartmann , @chhagedorn for reviews. |
/integrate |
Going to push as commit 1a27164.
Your commit was automatically rebased without conflicts. |
@jatin-bhateja Pushed as commit 1a27164. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Hi All,
Patch fixes the assertion failure seen during conditional constant propagation optimization on account of
non-convergence, this happens when type values (lattice) associated with IR node seen during iterative data flow analysis are not-monotonic.
Problem was occurring due to incorrect result value range estimation by Value routines associated with Compress/ExpandBits IR nodes, non-constant mask lattice can take any value between _lo and _hi values, special handling for +ve mask value range is using count_leading_zeros to estimate the maximum bit width needed to accommodate the result. Since count_leading_zeros
accepts a long argument there by sign-extending integer argument, hence for integer case we need to subtract 32 from the results to get correct value.
Patch also fixes a typo resulting into a dead code reported by JDK-8287855: Problem in compress_expand_identity.
Failing unit test java/lang/CompressExpandTest.java has been removed from ProblemList.txt.
Kindly review and share your feedback.
Best Regards,
Jatin
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk19 pull/104/head:pull/104
$ git checkout pull/104
Update a local copy of the PR:
$ git checkout pull/104
$ git pull https://git.openjdk.org/jdk19 pull/104/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 104
View PR using the GUI difftool:
$ git pr show -t 104
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk19/pull/104.diff