[14] RFR(S): 8233656: assert(d->is_CFG() && n->is_CFG()) failed: must have CFG nodes

Tobias Hartmann tobias.hartmann at oracle.com
Mon Nov 11 08:03:35 UTC 2019


Hi Vladimir,

thanks for the review.

On 09.11.19 13:38, Vladimir Ivanov wrote:
> Can you just check control for TOP instead?

In the failing case, the control input is not TOP but it's a ProjNode with a TOP input. We hit the
assert because the is_CFG() method returns false for these:
https://hg.openjdk.java.net/jdk/jdk/file/47c20fc6a517/src/hotspot/share/opto/multnode.cpp#l83

Or do you mean checking ctl->in(0) for TOP?

> Also, is it worth putting an assert to ensure the node is already on worklist and will be eventually
> eliminated?

I don't think it's worth it. Since 8040213 [1] we have code that ensures that all modified nodes are
added to the worklist (see Compile::record_modified_node()). I've verified that the ProjNode with
TOP input is covered by that.

Best regards,
Tobias

[1] https://bugs.openjdk.java.net/browse/JDK-8040213


More information about the hotspot-compiler-dev mailing list