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