Merge
This commit is contained in:
commit
82cedcaad3
@ -2475,7 +2475,7 @@ void Scheduling::DoScheduling() {
|
|||||||
if( iop == Op_Con ) continue; // Do not schedule Top
|
if( iop == Op_Con ) continue; // Do not schedule Top
|
||||||
if( iop == Op_Node && // Do not schedule PhiNodes, ProjNodes
|
if( iop == Op_Node && // Do not schedule PhiNodes, ProjNodes
|
||||||
mach->pipeline() == MachNode::pipeline_class() &&
|
mach->pipeline() == MachNode::pipeline_class() &&
|
||||||
!n->is_SpillCopy() ) // Breakpoints, Prolog, etc
|
!n->is_SpillCopy() && !n->is_MachMerge() ) // Breakpoints, Prolog, etc
|
||||||
continue;
|
continue;
|
||||||
break; // Funny loop structure to be sure...
|
break; // Funny loop structure to be sure...
|
||||||
}
|
}
|
||||||
|
@ -428,6 +428,7 @@ int PhaseChaitin::possibly_merge_multidef(Node *n, uint k, Block *block, RegToDe
|
|||||||
// Insert the merge node into the block before the first use.
|
// Insert the merge node into the block before the first use.
|
||||||
uint use_index = block->find_node(reg2defuse.at(reg).first_use());
|
uint use_index = block->find_node(reg2defuse.at(reg).first_use());
|
||||||
block->insert_node(merge, use_index++);
|
block->insert_node(merge, use_index++);
|
||||||
|
_cfg.map_node_to_block(merge, block);
|
||||||
|
|
||||||
// Let the allocator know about the new node, use the same lrg
|
// Let the allocator know about the new node, use the same lrg
|
||||||
_lrg_map.extend(merge->_idx, lrg);
|
_lrg_map.extend(merge->_idx, lrg);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user