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 }