8386482: C2 CountedLoopConverter::filtered_type_from_dominators: assert(_base == Int) failed: Not an Int#31481
Conversation
|
👋 Welcome back epeter! A progress list of the required criteria for merging this PR into |
|
@eme64 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 11 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. ➡️ To integrate this PR with the above commit message to the |
|
The total number of required reviews for this PR has been set to 2 based on the presence of this label: |
merykitty
left a comment
There was a problem hiding this comment.
Looks good to me, thanks for making the change.
|
@merykitty @vnkozlov Thanks for the reviews and approvals! /integrate |
|
Going to push as commit b9f7bd2.
Your commit was automatically rebased without conflicts. |
This fixes another bug in the
CountedLoopConverter::has_truncation_wrapoptimization.This issue was discovered by the template fuzzer: #31501
The issue here: we did not expect an unreachable state. But if we traverse several
ifconditions, theirjointype can becometop, which means thephitype is impossible, the loop unreachable.Fix: just
return nullptrif we get an empty type.Looks like this bug was created by #17508. Before that change, we could have
TypeIntwithlo > hi, and that would be considered an empty type,TypeInt::empty() == true. So it used to make sense to returnTypeInt*from these kinds of optimizations, and they could return empty type that way. Now that's not possible any more. We would have to returntop, and change the signatures toType*. That would require a lot of effort, and I don't think that makes sense for a bug-fix. Returning nullptr just means we did not narrow the type, and that should always be safe.Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/31481/head:pull/31481$ git checkout pull/31481Update a local copy of the PR:
$ git checkout pull/31481$ git pull https://git.openjdk.org/jdk.git pull/31481/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 31481View PR using the GUI difftool:
$ git pr show -t 31481Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/31481.diff
Using Webrev
Link to Webrev Comment