Lines Matching defs:region

34 Node *PhaseIdealLoop::split_thru_region( Node *n, Node *region ) {
37 assert( region->is_Region(), "" );
38 Node *r = new (C) RegionNode( region->req() );
40 for( uint i = 1; i < region->req(); i++ ) {
43 if( in0->in(0) == region ) x->set_req( 0, in0->in(i) );
46 if( get_ctrl(in) == region )
55 // Record region
56 r->set_req(0,region); // Not a TRUE RegionNode
401 Node *region = iff->in(0);
402 Node *region_dom = idom(region);
412 for (i = region->outs(); region->has_out(i); i++) {
413 Node* n = region->out(i);
414 if( n == region ) continue;
418 if (split_up(n, region, iff)) {
419 i = region->refresh_out_pos(i);
424 assert( n->in(0) == region, "" );
434 else if (m != iff && split_up(m, region, iff)) {
441 i = region->refresh_out_pos(i);
442 j = region->refresh_out_pos(j);
450 Node *new_iff = split_thru_region( iff, region );
460 Node *ifpx = split_thru_region( ifp, region );
476 new_iff->set_req(0, region);
488 // Lazy replace IDOM info with the region's dominator
493 // Preload some control flow in region-cache
497 for (DUIterator k = region->outs(); region->has_out(k); k++) {
498 Node* phi = region->out(k);
501 } else if (phi == region) { // Found the self-reference
504 assert(phi->in(0) == region, "Inconsistent graph");
521 assert(phi->in(0) == region, "Inconsistent graph");
523 handle_use(phi, region, &region_cache, region_dom, new_false, new_true, old_false, old_true);
525 // Every path above deletes a use of the region, except for the region
532 assert(region->outcnt() == 1, "Only self reference should remain"); // Just Self on the Region
533 region->set_req(0, NULL); // Break the self-cycle
538 lazy_replace( region, region_dom );