src/share/vm/opto/coalesce.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/coalesce.cpp Tue Jan 28 10:58:56 2014
--- new/src/share/vm/opto/coalesce.cpp Tue Jan 28 10:58:56 2014
*** 289,299 ****
--- 289,299 ----
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 (C) MachSpillCopyNode(m, *rm, *rm);
! copy = new (C) PhiInputSpillNode(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
n->set_req(j, copy);
*** 323,333 ****
--- 323,333 ----
// 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 (C) MachSpillCopyNode(m, *rm, *rm);
! copy = new (C) TwoAddressSpillNode(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
n->set_req(idx, copy);
*** 370,380 ****
--- 370,380 ----
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 (C) MachSpillCopyNode( inp, *rm, *rm );
! Node* copy = new (C) DebugUseSpillNode(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++);
// Extend ("register allocate") the names array for the copy.
src/share/vm/opto/coalesce.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File