[11] RFR(XS): 8202179: Compilation fails with assert(n->is_expensive()) failed: expensive nodes with non-null control here only
Tobias Hartmann
tobias.hartmann at oracle.com
Thu Apr 26 07:05:37 UTC 2018
Hi,
please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8202179
http://cr.openjdk.java.net/~thartmann/8202179/webrev.00/
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.
I was only able to reproduce this with replay compilation and a customer application.
All tests pass.
Thanks,
Tobias
More information about the hotspot-compiler-dev
mailing list