[jdk17] RFR: 8269771: assert(tmp == _callprojs.fallthrough_catchproj) failed: allocation control projection [v2]

Nils Eliasson neliasso at openjdk.java.net
Thu Jul 1 21:11:26 UTC 2021


> 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

Nils Eliasson has updated the pull request incrementally with one additional commit since the last revision:

  Fix assert

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk17/pull/193/files
  - new: https://git.openjdk.java.net/jdk17/pull/193/files/75336a9e..3ed97631

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk17&pr=193&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk17&pr=193&range=00-01

  Stats: 4 lines in 1 file changed: 2 ins; 1 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk17/pull/193.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/193/head:pull/193

PR: https://git.openjdk.java.net/jdk17/pull/193


More information about the hotspot-compiler-dev mailing list