Lines Matching refs:copy

12  * version 2 for more details (a copy is included in the LICENSE file that
15 * You should have received a copy of the GNU General Public License version
138 int PhaseChaitin::clone_projs( Block *b, uint idx, Node *con, Node *copy, uint &maxlrg ) {
147 kills->set_req( 0, copy );
294 // insert 2 copies into the same block. They copy L161->L128 and L128->L132.
296 // can get used by the second copy. This cannot happen in the SSA model;
303 void PhaseAggressiveCoalesce::insert_copy_with_overlap( Block *b, Node *copy, uint dst_name, uint src_name ) {
306 // I am about to clobber the dst_name, so the copy must be inserted
322 // Since the copy uses src_name, I have to come before any kill.
342 uint idx = copy->is_Copy();
343 Node *tmp = copy->clone();
345 // Insert new temp between copy and source
346 tmp ->set_req(idx,copy->in(idx));
347 copy->set_req(idx,tmp);
355 b->_nodes.insert(last_use_idx+1,copy);
391 Node *copy = n->in(k);
392 uint cidx = copy->is_Copy();
394 Node *def = copy->in(cidx);
395 if( _phc.Find(copy) == _phc.Find(def) )
424 Node *copy;
429 copy = m->clone();
430 // Insert the copy in the predecessor basic block
431 pred->add_inst(copy);
433 _phc.clone_projs( pred, pred->end_idx(), m, copy, _phc._maxlrg );
436 copy = new (C) MachSpillCopyNode(m,*rm,*rm);
438 insert_copy_with_overlap(pred,copy,phi_name,src_name);
440 // Insert the copy in the use-def chain
441 n->set_req( j, copy );
442 _phc._cfg._bbs.map( copy->_idx, pred );
443 // Extend ("register allocate") the names array for the copy.
444 _phc._names.extend( copy->_idx, phi_name );
458 Node *copy;
464 copy = m->clone();
465 // Insert the copy in the basic block, just before us
466 b->_nodes.insert( l++, copy );
467 if( _phc.clone_projs( b, l, m, copy, _phc._maxlrg ) )
471 copy = new (C) MachSpillCopyNode( m, *rm, *rm );
472 // Insert the copy in the basic block, just before us
473 b->_nodes.insert( l++, copy );
475 // Insert the copy in the use-def chain
476 n->set_req(idx, copy );
477 // Extend ("register allocate") the names array for the copy.
478 _phc._names.extend( copy->_idx, name );
479 _phc._cfg._bbs.map( copy->_idx, b );
484 // Insert a copy at a debug use for a lrg which has high frequency
516 Node *copy = new (C) MachSpillCopyNode( inp, *rm, *rm );
517 // Insert the copy in the use-def chain
518 n->set_req(inpidx, copy );
519 // Insert the copy in the basic block, just before us
520 b->_nodes.insert( l++, copy );
521 // Extend ("register allocate") the names array for the copy.
522 _phc.new_lrg( copy, _phc._maxlrg++ );
523 _phc._cfg._bbs.map( copy->_idx, b );
537 // Aggressive (but pessimistic) copy coalescing of a single block
562 // live-ranges. If I fail to coalesce, I'll have to insert a copy to line
632 // Add copy to free list
670 if( x == prev_copy ) { // Previous copy in copy chain?
673 // Else work back one in copy chain
743 // Tag copy bias here
752 // final dest copy and the original src copy. They can be the same Node.
847 // YEAH - Now coalesce this copy away
901 // Conservative (but pessimistic) copy coalescing of a single block
908 // Check for actual copies on inputs. Coalesce a copy into its
909 // input if use and copy's input are compatible.
912 if( !idx1 ) continue; // Not a copy