[11] RFR(XS): 8202179: Compilation fails with assert(n->is_expensive()) failed: expensive nodes with non-null control here only

Roland Westrelin rwestrel at redhat.com
Thu Apr 26 07:57:07 UTC 2018


Hi Tobias,

> Expensive nodes have control inputs to prevent GVN from commoning them which may cause more frequent
> execution (see comment of PhaseIdealLoop::process_expensive_nodes()).
> Compile::cleanup_expensive_nodes() assumes no expensive nodes are added after parsing and removes
> the control input if there's only a single copy of a node. ConvD2FNode::Ideal() then creates a new
> SqrtFNode with the control of the input SqrtDNode (which is NULL).
>
> We should only treat the SqrtFNode as expensive if the control input is not NULL.

Is there something preventing ConvD2FNode::Ideal() from creating a
SqrtFNode with a non null control (i.e. from a SqrtDNode with a non null
control)? I suppose we could have 2 identical SqrtDNodes and then
control wouldn't be cleared by cleanup_expensive_nodes?

Roland.


More information about the hotspot-compiler-dev mailing list