[12] RFR(S): 8210387: C2 compilation fails with "assert(node->_last_del == _last) failed: must have deleted the edge just produced"
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Sep 11 08:31:27 UTC 2018
Hi,
please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8210387
http://cr.openjdk.java.net/~thartmann/8210387/webrev.00/
During CCP, before removing unreachable regions, we first replace all dead phi users with TOP by
calling PhaseIterGVN::replace_node. Replacing a phi node can trigger removal of other nodes some of
which might also be phi users of the same region. This breaks verification of the DUIterator because
only one node is expected to be removed. Very similar to the code in RegionNode::Ideal [1], we need
to refresh the iterator and start iterating from the beginning for as long as there is progress.
Thanks,
Tobias
[1] http://hg.openjdk.java.net/jdk/jdk/file/bbc7157ad9c5/src/hotspot/share/opto/cfgnode.cpp#l538
More information about the hotspot-compiler-dev
mailing list