210 bool has_phi = false; |
210 bool has_phi = false; |
211 for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { |
211 for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { |
212 Node* use = rgn->fast_out(i); |
212 Node* use = rgn->fast_out(i); |
213 if (use->is_Phi() && use->outcnt() > 0) { |
213 if (use->is_Phi() && use->outcnt() > 0) { |
214 assert(use->in(0) == rgn, ""); |
214 assert(use->in(0) == rgn, ""); |
215 _igvn.hash_delete(use); |
215 _igvn.rehash_node_delayed(use); |
216 use->add_req(use->in(proj_index)); |
216 use->add_req(use->in(proj_index)); |
217 _igvn._worklist.push(use); |
|
218 has_phi = true; |
217 has_phi = true; |
219 } |
218 } |
220 } |
219 } |
221 assert(!has_phi || rgn->req() > 3, "no phis when region is created"); |
220 assert(!has_phi || rgn->req() > 3, "no phis when region is created"); |
222 |
221 |
282 assert(rgn->in(rgn->req() -1) == if_uct, "new edge should be last"); |
281 assert(rgn->in(rgn->req() -1) == if_uct, "new edge should be last"); |
283 bool has_phi = false; |
282 bool has_phi = false; |
284 for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { |
283 for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { |
285 Node* use = rgn->fast_out(i); |
284 Node* use = rgn->fast_out(i); |
286 if (use->is_Phi() && use->outcnt() > 0) { |
285 if (use->is_Phi() && use->outcnt() > 0) { |
287 hash_delete(use); |
286 rehash_node_delayed(use); |
288 use->add_req(use->in(proj_index)); |
287 use->add_req(use->in(proj_index)); |
289 _worklist.push(use); |
|
290 has_phi = true; |
288 has_phi = true; |
291 } |
289 } |
292 } |
290 } |
293 assert(!has_phi || rgn->req() > 3, "no phis when region is created"); |
291 assert(!has_phi || rgn->req() > 3, "no phis when region is created"); |
294 |
292 |