Integrated: 8255665: C2 should aggressively remove temporary hook nodes

Tobias Hartmann thartmann at openjdk.java.net
Thu Nov 5 08:05:56 UTC 2020


On Mon, 2 Nov 2020 08:14:28 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> C2 often creates temporary "hook" nodes to keep other nodes alive. Although dead, these are sometimes not removed because they don't end up on the IGVN worklist. JDK-8040213 added detection of modified nodes that are not re-processed by IGVN but currently ignores dead nodes.
> 
> This patch includes the following changes:
> - Adjust detection of modified nodes such that dead nodes are includes as well. This revealed several locations were dead nodes are not eagerly destructed (or not even added to the worklist for later removal). I've fixed all of these.
> - No need to yank node inputs before calling `destruct`.
> - `kill_dead_code` accidentally re-adds dead nodes to the `_modified_nodes` list. `Compile::remove_modified_node` should be called at the end to avoid this.
> - Some removal of dead code.
> 
> Tested with tier1-3, higher tiers are running.
> 
> JDK-8255670 will further improve detection.
> 
> Thanks,
> Tobias

This pull request has now been integrated.

Changeset: eb85b8da
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/eb85b8da
Stats:     83 lines in 16 files changed: 4 ins; 42 del; 37 mod

8255665: C2 should aggressively remove temporary hook nodes

Reviewed-by: chagedorn, kvn

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

PR: https://git.openjdk.java.net/jdk/pull/994


More information about the hotspot-dev mailing list