RFR: 8253756: C2 CompilerThread0 crash in Node::add_req(Node*)
Vladimir Ivanov
vlivanov at openjdk.java.net
Wed Oct 7 11:34:08 UTC 2020
On Wed, 7 Oct 2020 07:48:23 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> The outer strip mined loop is initially created as a skeleton and then
> expanded once loop opts are over. As long as it is a skeleton, the
> OuterStripMinedLoopEndNode cannot be constant folded because its input
> is a place holder. So OuterStripMinedLoopEndNode::Value() blocks
> constant folding. This bug triggers because the
> OuterStripMinedLoopEndNode input after expansion is a constant but the
> OuterStripMinedLoopEndNode is not constant folded (i.e. it's a dead
> loop but it stays in the graph). The fix I propose is to change the
> behavior OuterStripMinedLoopEndNode::Value() so it blocks constant
> folding only until expansion but not after.
Changes requested by vlivanov (Reviewer).
src/hotspot/share/opto/loopnode.cpp line 1729:
> 1727: inner_cl->clear_strip_mined();
> 1728: }
> 1729: igvn->C->print_method(PHASE_DEBUG, 2);
Looks like a leftover from debugging. Otherwise, the fix looks good.
-------------
PR: https://git.openjdk.java.net/jdk/pull/537
More information about the hotspot-compiler-dev
mailing list