8379863: [lworld] C2: assert(!value->obj_is_scalar_replaced() || realloc_failures) failed: object should be reallocated already#2240
Conversation
|
👋 Welcome back bmaillard! A progress list of the required criteria for merging this PR into |
|
@benoitmaillard 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 12 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. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@marc-chevalier, @TobiHartmann) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
ded71a7 to
87f2313
Compare
Webrevs
|
marc-chevalier
left a comment
There was a problem hiding this comment.
Why was DoEscapeAnalysis necessary before, when EliminateAllocations is true?
|
On mainline scalarization is dependent on escape analysis, with valhalla inline types can be scalarized in InlineTypeNode::make_scalar_in_safepoints, independently of escape analysis @marc-chevalier. |
|
Could you please add a regression test (or add a configuration to an existing test)? |
|
I have added a regression test @TobiHartmann, sorry for not doing this earlier. |
marc-chevalier
left a comment
There was a problem hiding this comment.
I like this version better.
TobiHartmann
left a comment
There was a problem hiding this comment.
Thanks, that looks good to me!
|
Thank you for your reviews @marc-chevalier @TobiHartmann! |
|
@benoitmaillard |
|
/sponsor |
|
Going to push as commit 19fe8ba.
Your commit was automatically rebased without conflicts. |
|
@TobiHartmann @benoitmaillard Pushed as commit 19fe8ba. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This PR prevents hitting an assert in
vframeArrayElement::fill_inwhen escape analysis and autobox elimination are disabled.With value classes, scalarization can take place independently of escape analysis. When deoptimizing, this implies that we must always rematerialize objects when
EliminateAllocationsis true, even if escape analysis is disabled.Prior to this change, we hit an assert in
vframeArrayElement::fill_inbecause it is expected that scalarized objects are already reallocated there. We have to make sure thatrematerialize_objectsis run before that.Testing
Thank you for reviewing!
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/2240/head:pull/2240$ git checkout pull/2240Update a local copy of the PR:
$ git checkout pull/2240$ git pull https://git.openjdk.org/valhalla.git pull/2240/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2240View PR using the GUI difftool:
$ git pr show -t 2240Using diff file
Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/2240.diff
Using Webrev
Link to Webrev Comment