[jdk17] Integrated: 8269771: assert(tmp == _callprojs.fallthrough_catchproj) failed: allocation control projection
Nils Eliasson
neliasso at openjdk.java.net
Fri Jul 2 07:21:03 UTC 2021
On Thu, 1 Jul 2021 11:04:59 GMT, Nils Eliasson <neliasso at openjdk.org> wrote:
> When I investigated this bug I found out it was already fixed by JDK-8268405, or at least - it didn't happen any more. Since I had a good reproducer I took a look at why it happened and found two issues.
>
> The noteable thing about the test case is that there are still allocations that isn't used. The initalizeNode lead to HaltNodes. This looks like a temporary state while the graph is simplified.
>
> 1) In macro.cpp - process_users_of_allocation - there was an assert that was wrong. We must assert before the replace_node - otherwise tmp will always be NULL and fail. Why this hasn't happened before is a mystery.
>
> 2) memnode.cpp - MemBarNode::remove - returns without doing anything if there are not exactly 2 outs. In this case there is a InitalizeNode that leads to a HaltNode. The memory uses has been removed - so the memory projection from the InitalizeNode is already removed.
>
> If you want to check if this patch fixes the issue - you need to sync to jdk-17+26 - or before the fix for JDK-8268405.
>
> Please review,
> Nils Eliasson
This pull request has now been integrated.
Changeset: 7bc96dbc
Author: Nils Eliasson <neliasso at openjdk.org>
URL: https://git.openjdk.java.net/jdk17/commit/7bc96dbc023d5c8b20d12b21986f84dc260acab6
Stats: 10 lines in 2 files changed: 6 ins; 0 del; 4 mod
8269771: assert(tmp == _callprojs.fallthrough_catchproj) failed: allocation control projection
Reviewed-by: rbackman, kvn
-------------
PR: https://git.openjdk.java.net/jdk17/pull/193
More information about the hotspot-compiler-dev
mailing list