src/share/vm/opto/loopnode.cpp

changeset 1976
6027dddc26c6
parent 1907
c18cbe5936b8
child 2118
d6f45b55c972
     1.1 --- a/src/share/vm/opto/loopnode.cpp	Mon Jun 28 10:52:50 2010 -0700
     1.2 +++ b/src/share/vm/opto/loopnode.cpp	Mon Jun 28 14:54:39 2010 -0700
     1.3 @@ -400,7 +400,7 @@
     1.4      nphi->set_req(LoopNode::LoopBackControl, phi->in(LoopNode::LoopBackControl));
     1.5      nphi = _igvn.register_new_node_with_optimizer(nphi);
     1.6      set_ctrl(nphi, get_ctrl(phi));
     1.7 -    _igvn.subsume_node(phi, nphi);
     1.8 +    _igvn.replace_node(phi, nphi);
     1.9      phi = nphi->as_Phi();
    1.10    }
    1.11    cmp = cmp->clone();
    1.12 @@ -760,7 +760,7 @@
    1.13        // which in turn prevents removing an empty loop.
    1.14        Node *id_old_phi = old_phi->Identity( &igvn );
    1.15        if( id_old_phi != old_phi ) { // Found a simple identity?
    1.16 -        // Note that I cannot call 'subsume_node' here, because
    1.17 +        // Note that I cannot call 'replace_node' here, because
    1.18          // that will yank the edge from old_phi to the Region and
    1.19          // I'm mid-iteration over the Region's uses.
    1.20          for (DUIterator_Last imin, i = old_phi->last_outs(imin); i >= imin; ) {
    1.21 @@ -1065,11 +1065,9 @@
    1.22      l = igvn.register_new_node_with_optimizer(l, _head);
    1.23      phase->set_created_loop_node();
    1.24      // Go ahead and replace _head
    1.25 -    phase->_igvn.subsume_node( _head, l );
    1.26 +    phase->_igvn.replace_node( _head, l );
    1.27      _head = l;
    1.28      phase->set_loop(_head, this);
    1.29 -    for (DUIterator_Fast imax, i = l->fast_outs(imax); i < imax; i++)
    1.30 -      phase->_igvn.add_users_to_worklist(l->fast_out(i));
    1.31    }
    1.32  
    1.33    // Now recursively beautify nested loops
    1.34 @@ -1329,8 +1327,7 @@
    1.35          Node* add  = new (C, 3) AddINode(ratio_idx, diff);
    1.36          phase->_igvn.register_new_node_with_optimizer(add);
    1.37          phase->set_ctrl(add, cl);
    1.38 -        phase->_igvn.hash_delete( phi2 );
    1.39 -        phase->_igvn.subsume_node( phi2, add );
    1.40 +        phase->_igvn.replace_node( phi2, add );
    1.41          // Sometimes an induction variable is unused
    1.42          if (add->outcnt() == 0) {
    1.43            phase->_igvn.remove_dead_node(add);

mercurial