Mercurial > hg > truffle
comparison src/share/vm/opto/coalesce.cpp @ 14513:16c705d792be
Merge
author | morris |
---|---|
date | Fri, 28 Feb 2014 08:02:20 -0800 |
parents | 04e7587c97dc |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
14493:7d30d4f37d31 | 14513:16c705d792be |
---|---|
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(m, *rm, *rm); | 294 copy = new (C) MachSpillCopyNode(MachSpillCopyNode::PhiInput, 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(m, *rm, *rm); | 328 copy = new (C) MachSpillCopyNode(MachSpillCopyNode::TwoAddress, 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( inp, *rm, *rm ); | 375 Node* copy = new (C) MachSpillCopyNode(MachSpillCopyNode::DebugUse, 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. |