< prev index next >

src/hotspot/share/opto/split_if.cpp

Print this page

        

*** 237,247 **** Node *x = n->clone(); // Widen the type of the ConvI2L when pushing up. if (rtype != NULL) x->as_Type()->set_type(rtype); if( n->in(0) && n->in(0) == blk1 ) x->set_req( 0, blk1->in(j) ); ! for( uint i = 1; i < n->req(); i++ ) { Node *m = n->in(i); if( get_ctrl(m) == blk1 ) { assert( m->in(0) == blk1, "" ); x->set_req( i, m->in(j) ); } --- 237,247 ---- Node *x = n->clone(); // Widen the type of the ConvI2L when pushing up. if (rtype != NULL) x->as_Type()->set_type(rtype); if( n->in(0) && n->in(0) == blk1 ) x->set_req( 0, blk1->in(j) ); ! for( uint i = n->is_Proj() ? 0 : 1; i < n->req(); i++ ) { Node *m = n->in(i); if( get_ctrl(m) == blk1 ) { assert( m->in(0) == blk1, "" ); x->set_req( i, m->in(j) ); }
*** 251,260 **** --- 251,261 ---- } // Announce phi to optimizer register_new_node(phi, blk1); // Remove cloned-up value from optimizer; use phi instead + split_mem_thru_phi(n, blk1, phi); _igvn.replace_node( n, phi ); // (There used to be a self-recursive call to split_up() here, // but it is not needed. All necessary forward walking is done // by do_split_if() below.)
< prev index next >