Integrated: 8344251: C2: remove blackholes with dead control input

Marc Chevalier mchevalier at openjdk.org
Thu Apr 17 07:26:54 UTC 2025


On Tue, 15 Apr 2025 13:39:52 GMT, Marc Chevalier <mchevalier at openjdk.org> wrote:

> When a BlackholeNode's control input becomes dead, the node is not removed causing the crash
> 
>  assert(!in->is_CFG()) failed: CFG Node with no controlling input?
> 
> In the case reported in the issue, after a round of peeling, a condition becomes constant, and the branch containing the blackhole becomes dead:
> 
> <img src="https://github.com/user-attachments/assets/f8e5ec85-ddf5-4018-a01e-30ea90d9d74f" width="400">
> <img src="https://github.com/user-attachments/assets/626e40a1-be2f-4b1c-bc56-9760a26660f2" width="400">
> 
> I simply use `Node::remove_dead_region(PhaseGVN*, bool)` to remove the blackhole, as many other node types do.

This pull request has now been integrated.

Changeset: 1138a186
Author:    Marc Chevalier <mchevalier at openjdk.org>
Committer: Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/1138a186eb670e2c0662bda69c35680b41f4d66c
Stats:     87 lines in 4 files changed: 87 ins; 0 del; 0 mod

8344251: C2: remove blackholes with dead control input

Reviewed-by: shade, thartmann, kvn

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

PR: https://git.openjdk.org/jdk/pull/24663


More information about the hotspot-compiler-dev mailing list