< prev index next >

src/share/vm/opto/coalesce.cpp

Print this page

        

*** 290,300 **** // Insert the copy in the predecessor basic block pred->add_inst(copy); // Copy any flags as well _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map); } else { ! const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; copy = new MachSpillCopyNode(MachSpillCopyNode::PhiInput, m, *rm, *rm); // Find a good place to insert. Kinda tricky, use a subroutine insert_copy_with_overlap(pred,copy,phi_name,src_name); } // Insert the copy in the use-def chain --- 290,300 ---- // Insert the copy in the predecessor basic block pred->add_inst(copy); // Copy any flags as well _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map); } else { ! const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast<uint>(m->ideal_reg())]; copy = new MachSpillCopyNode(MachSpillCopyNode::PhiInput, m, *rm, *rm); // Find a good place to insert. Kinda tricky, use a subroutine insert_copy_with_overlap(pred,copy,phi_name,src_name); } // Insert the copy in the use-def chain
*** 324,334 **** copy = m->clone(); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map); } else { ! const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; copy = new MachSpillCopyNode(MachSpillCopyNode::TwoAddress, m, *rm, *rm); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); } // Insert the copy in the use-def chain --- 324,334 ---- copy = m->clone(); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map); } else { ! const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast<uint>(m->ideal_reg())]; copy = new MachSpillCopyNode(MachSpillCopyNode::TwoAddress, m, *rm, *rm); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); } // Insert the copy in the use-def chain
*** 371,381 **** if( _phc._live->live(b->_succs[k])->member( nidx ) ) break; // Live in to some successor block? if( k < b->_num_succs ) continue; // Live out; do not pre-split // Split the lrg at this use ! const RegMask *rm = C->matcher()->idealreg2spillmask[inp->ideal_reg()]; Node* copy = new MachSpillCopyNode(MachSpillCopyNode::DebugUse, inp, *rm, *rm); // Insert the copy in the use-def chain n->set_req(inpidx, copy ); // Insert the copy in the basic block, just before us b->insert_node(copy, l++); --- 371,381 ---- if( _phc._live->live(b->_succs[k])->member( nidx ) ) break; // Live in to some successor block? if( k < b->_num_succs ) continue; // Live out; do not pre-split // Split the lrg at this use ! const RegMask *rm = C->matcher()->idealreg2spillmask[static_cast<uint>(inp->ideal_reg())]; Node* copy = new MachSpillCopyNode(MachSpillCopyNode::DebugUse, inp, *rm, *rm); // Insert the copy in the use-def chain n->set_req(inpidx, copy ); // Insert the copy in the basic block, just before us b->insert_node(copy, l++);
< prev index next >