comparison src/share/vm/opto/coalesce.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents 04e7587c97dc
children 7848fc12602b
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
289 pred->add_inst(copy); 289 pred->add_inst(copy);
290 // Copy any flags as well 290 // Copy any flags as well
291 _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map); 291 _phc.clone_projs(pred, pred->end_idx(), m, copy, _phc._lrg_map);
292 } else { 292 } else {
293 const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; 293 const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()];
294 copy = new (C) MachSpillCopyNode(MachSpillCopyNode::PhiInput, m, *rm, *rm); 294 copy = new (C) MachSpillCopyNode(m, *rm, *rm);
295 // Find a good place to insert. Kinda tricky, use a subroutine 295 // Find a good place to insert. Kinda tricky, use a subroutine
296 insert_copy_with_overlap(pred,copy,phi_name,src_name); 296 insert_copy_with_overlap(pred,copy,phi_name,src_name);
297 } 297 }
298 // Insert the copy in the use-def chain 298 // Insert the copy in the use-def chain
299 n->set_req(j, copy); 299 n->set_req(j, copy);
323 // Insert the copy in the basic block, just before us 323 // Insert the copy in the basic block, just before us
324 b->insert_node(copy, l++); 324 b->insert_node(copy, l++);
325 l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map); 325 l += _phc.clone_projs(b, l, m, copy, _phc._lrg_map);
326 } else { 326 } else {
327 const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; 327 const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()];
328 copy = new (C) MachSpillCopyNode(MachSpillCopyNode::TwoAddress, m, *rm, *rm); 328 copy = new (C) MachSpillCopyNode(m, *rm, *rm);
329 // Insert the copy in the basic block, just before us 329 // Insert the copy in the basic block, just before us
330 b->insert_node(copy, l++); 330 b->insert_node(copy, l++);
331 } 331 }
332 // Insert the copy in the use-def chain 332 // Insert the copy in the use-def chain
333 n->set_req(idx, copy); 333 n->set_req(idx, copy);
370 break; // Live in to some successor block? 370 break; // Live in to some successor block?
371 if( k < b->_num_succs ) 371 if( k < b->_num_succs )
372 continue; // Live out; do not pre-split 372 continue; // Live out; do not pre-split
373 // Split the lrg at this use 373 // Split the lrg at this use
374 const RegMask *rm = C->matcher()->idealreg2spillmask[inp->ideal_reg()]; 374 const RegMask *rm = C->matcher()->idealreg2spillmask[inp->ideal_reg()];
375 Node* copy = new (C) MachSpillCopyNode(MachSpillCopyNode::DebugUse, inp, *rm, *rm); 375 Node *copy = new (C) MachSpillCopyNode( inp, *rm, *rm );
376 // Insert the copy in the use-def chain 376 // Insert the copy in the use-def chain
377 n->set_req(inpidx, copy ); 377 n->set_req(inpidx, copy );
378 // Insert the copy in the basic block, just before us 378 // Insert the copy in the basic block, just before us
379 b->insert_node(copy, l++); 379 b->insert_node(copy, l++);
380 // Extend ("register allocate") the names array for the copy. 380 // Extend ("register allocate") the names array for the copy.