comparison src/share/vm/opto/loopnode.hpp @ 1621:6027dddc26c6

6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist() Summary: Use replace_node() method instead of subsume_node(). Reviewed-by: jrose, never
author kvn
date Mon, 28 Jun 2010 14:54:39 -0700
parents c18cbe5936b8
children d6f45b55c972
comparison
equal deleted inserted replaced
1620:d678e3277048 1621:6027dddc26c6
624 // Nodes always have DU info now, so re-use the side array slot 624 // Nodes always have DU info now, so re-use the side array slot
625 // for this node to provide the forwarding pointer. 625 // for this node to provide the forwarding pointer.
626 _nodes.map( old_node->_idx, (Node*)((intptr_t)new_node + 1) ); 626 _nodes.map( old_node->_idx, (Node*)((intptr_t)new_node + 1) );
627 } 627 }
628 void lazy_replace( Node *old_node, Node *new_node ) { 628 void lazy_replace( Node *old_node, Node *new_node ) {
629 _igvn.hash_delete(old_node); 629 _igvn.replace_node( old_node, new_node );
630 _igvn.subsume_node( old_node, new_node );
631 lazy_update( old_node, new_node ); 630 lazy_update( old_node, new_node );
632 } 631 }
633 void lazy_replace_proj( Node *old_node, Node *new_node ) { 632 void lazy_replace_proj( Node *old_node, Node *new_node ) {
634 assert( old_node->req() == 1, "use this for Projs" ); 633 assert( old_node->req() == 1, "use this for Projs" );
635 _igvn.hash_delete(old_node); // Must hash-delete before hacking edges 634 _igvn.hash_delete(old_node); // Must hash-delete before hacking edges