8068864: C2 failed: modified node is not on IGVN._worklist
authorkvn
Wed, 14 Jan 2015 17:27:00 -0800
changeset 28639 beee8cc25bbf
parent 28503 862f2b351181
child 28640 01e4ca94fb0d
8068864: C2 failed: modified node is not on IGVN._worklist Summary: Use igvn.replace_input_of() instead of set_req(). Reviewed-by: iveresov, vlivanov
hotspot/src/share/vm/opto/loopTransform.cpp
--- 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);