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
8273165: GraphKit::combine_exception_states fails with "matching stack sizes" assert #5330
Conversation
|
That looks good to me but I would suggest to use recv_type->maybe_null()
.
Webrevs
|
Good point, fixed. Thanks for the review. |
@iwanowww This change now passes all automated pre-integration checks. 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 84 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.
|
Thanks for the reviews, Tobias and Vladimir. /integrate |
Going to push as commit 632a7e0.
Your commit was automatically rebased without conflicts. |
The fix for JDK-8271276 uncovered another problem with incremental inlining through
virtual call sites: receiver null check breaks exception state combining in
GraphKit::replace_call()
because the associtated exception path has the JVM state representing the point
right before the call (arguments are on stack).
I propose a conservative fix which bails out the inlining attempt when receiver is not provably non-null.
IMO the proper fix is to always add explicit receiver null check and teach
Block::implicit_null_check()
about CallDynamicJava nodes. But that's for aseparate change.
Testing: failing tests, hs-tier1 - hs-tier4
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5330/head:pull/5330
$ git checkout pull/5330
Update a local copy of the PR:
$ git checkout pull/5330
$ git pull https://git.openjdk.java.net/jdk pull/5330/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 5330
View PR using the GUI difftool:
$ git pr show -t 5330
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5330.diff