8068864: C2 failed: modified node is not on IGVN._worklist
Summary: Use igvn.replace_input_of() instead of set_req().
Reviewed-by: iveresov, vlivanov
--- a/hotspot/src/share/vm/opto/loopTransform.cpp Wed Jan 14 16:00:51 2015 -0800
+++ b/hotspot/src/share/vm/opto/loopTransform.cpp Wed Jan 14 17:27:00 2015 -0800
@@ -2057,10 +2057,9 @@
}
Node *main_cmp = main_bol->in(1);
if( main_cmp->outcnt() > 1 ) { // CmpNode shared?
- _igvn.hash_delete(main_bol);
main_cmp = main_cmp->clone();// Clone a private CmpNode
register_new_node( main_cmp, main_cle->in(0) );
- main_bol->set_req(1,main_cmp);
+ _igvn.replace_input_of(main_bol, 1, main_cmp);
}
// Hack the now-private loop bounds
_igvn.replace_input_of(main_cmp, 2, main_limit);