--- a/src/hotspot/share/opto/loopnode.cpp Fri Jan 26 13:13:19 2018 -0800
+++ b/src/hotspot/share/opto/loopnode.cpp Tue Jan 30 09:08:44 2018 +0100
@@ -1260,6 +1260,10 @@
assert(inner_cl->is_strip_mined(), "inner loop should be strip mined");
Node* inner_iv_phi = inner_cl->phi();
if (inner_iv_phi == NULL) {
+ IfNode* outer_le = outer_loop_end();
+ Node* iff = igvn->transform(new IfNode(outer_le->in(0), outer_le->in(1), outer_le->_prob, outer_le->_fcnt));
+ igvn->replace_node(outer_le, iff);
+ inner_cl->clear_strip_mined();
return;
}
CountedLoopEndNode* inner_cle = inner_cl->loopexit();