src/share/vm/opto/macro.cpp

changeset 3847
5e990493719e
parent 3521
b9bc6cae88f2
child 3900
d2a62e0f25eb
     1.1 --- a/src/share/vm/opto/macro.cpp	Tue Jun 12 14:31:44 2012 -0700
     1.2 +++ b/src/share/vm/opto/macro.cpp	Tue Jun 12 16:23:31 2012 -0700
     1.3 @@ -1447,9 +1447,8 @@
     1.4    if (!always_slow && _memproj_fallthrough != NULL) {
     1.5      for (DUIterator_Fast imax, i = _memproj_fallthrough->fast_outs(imax); i < imax; i++) {
     1.6        Node *use = _memproj_fallthrough->fast_out(i);
     1.7 -      _igvn.hash_delete(use);
     1.8 +      _igvn.rehash_node_delayed(use);
     1.9        imax -= replace_input(use, _memproj_fallthrough, result_phi_rawmem);
    1.10 -      _igvn._worklist.push(use);
    1.11        // back up iterator
    1.12        --i;
    1.13      }
    1.14 @@ -1463,9 +1462,8 @@
    1.15      }
    1.16      for (DUIterator_Fast imax, i = _memproj_catchall->fast_outs(imax); i < imax; i++) {
    1.17        Node *use = _memproj_catchall->fast_out(i);
    1.18 -      _igvn.hash_delete(use);
    1.19 +      _igvn.rehash_node_delayed(use);
    1.20        imax -= replace_input(use, _memproj_catchall, _memproj_fallthrough);
    1.21 -      _igvn._worklist.push(use);
    1.22        // back up iterator
    1.23        --i;
    1.24      }
    1.25 @@ -1481,9 +1479,8 @@
    1.26    if (_ioproj_fallthrough != NULL) {
    1.27      for (DUIterator_Fast imax, i = _ioproj_fallthrough->fast_outs(imax); i < imax; i++) {
    1.28        Node *use = _ioproj_fallthrough->fast_out(i);
    1.29 -      _igvn.hash_delete(use);
    1.30 +      _igvn.rehash_node_delayed(use);
    1.31        imax -= replace_input(use, _ioproj_fallthrough, result_phi_i_o);
    1.32 -      _igvn._worklist.push(use);
    1.33        // back up iterator
    1.34        --i;
    1.35      }
    1.36 @@ -1497,9 +1494,8 @@
    1.37      }
    1.38      for (DUIterator_Fast imax, i = _ioproj_catchall->fast_outs(imax); i < imax; i++) {
    1.39        Node *use = _ioproj_catchall->fast_out(i);
    1.40 -      _igvn.hash_delete(use);
    1.41 +      _igvn.rehash_node_delayed(use);
    1.42        imax -= replace_input(use, _ioproj_catchall, _ioproj_fallthrough);
    1.43 -      _igvn._worklist.push(use);
    1.44        // back up iterator
    1.45        --i;
    1.46      }
    1.47 @@ -1857,18 +1853,16 @@
    1.48        if (alock->box_node() == oldbox && alock->obj_node()->eqv_uncast(obj)) {
    1.49          // Replace Box and mark eliminated all related locks and unlocks.
    1.50          alock->set_non_esc_obj();
    1.51 -        _igvn.hash_delete(alock);
    1.52 +        _igvn.rehash_node_delayed(alock);
    1.53          alock->set_box_node(newbox);
    1.54 -        _igvn._worklist.push(alock);
    1.55          next_edge = false;
    1.56        }
    1.57      }
    1.58      if (u->is_FastLock() && u->as_FastLock()->obj_node()->eqv_uncast(obj)) {
    1.59        FastLockNode* flock = u->as_FastLock();
    1.60        assert(flock->box_node() == oldbox, "sanity");
    1.61 -      _igvn.hash_delete(flock);
    1.62 +      _igvn.rehash_node_delayed(flock);
    1.63        flock->set_box_node(newbox);
    1.64 -      _igvn._worklist.push(flock);
    1.65        next_edge = false;
    1.66      }
    1.67  
    1.68 @@ -1886,9 +1880,7 @@
    1.69            Node* box_node = sfn->monitor_box(jvms, idx);
    1.70            if (box_node == oldbox && obj_node->eqv_uncast(obj)) {
    1.71              int j = jvms->monitor_box_offset(idx);
    1.72 -            _igvn.hash_delete(u);
    1.73 -            u->set_req(j, newbox);
    1.74 -            _igvn._worklist.push(u);
    1.75 +            _igvn.replace_input_of(u, j, newbox);
    1.76              next_edge = false;
    1.77            }
    1.78          }

mercurial