comparison src/share/vm/opto/ifg.cpp @ 12023:d1034bd8cefc

8022284: Hide internal data structure in PhaseCFG Summary: Hide private node to block mapping using public interface Reviewed-by: kvn, roland
author adlertz
date Wed, 07 Aug 2013 17:56:19 +0200
parents 8373c19be854
children adb9a7d94cb5
comparison
equal deleted inserted replaced
12004:71526a36ebb4 12023:d1034bd8cefc
563 b->_nodes.remove(j - 1); 563 b->_nodes.remove(j - 1);
564 if (lrgs(r)._def == n) { 564 if (lrgs(r)._def == n) {
565 lrgs(r)._def = 0; 565 lrgs(r)._def = 0;
566 } 566 }
567 n->disconnect_inputs(NULL, C); 567 n->disconnect_inputs(NULL, C);
568 _cfg._bbs.map(n->_idx,NULL); 568 _cfg.unmap_node_from_block(n);
569 n->replace_by(C->top()); 569 n->replace_by(C->top());
570 // Since yanking a Node from block, high pressure moves up one 570 // Since yanking a Node from block, high pressure moves up one
571 hrp_index[0]--; 571 hrp_index[0]--;
572 hrp_index[1]--; 572 hrp_index[1]--;
573 continue; 573 continue;
605 605
606 // Insure high score for immediate-use spill copies so they get a color 606 // Insure high score for immediate-use spill copies so they get a color
607 if( n->is_SpillCopy() 607 if( n->is_SpillCopy()
608 && lrgs(r).is_singledef() // MultiDef live range can still split 608 && lrgs(r).is_singledef() // MultiDef live range can still split
609 && n->outcnt() == 1 // and use must be in this block 609 && n->outcnt() == 1 // and use must be in this block
610 && _cfg._bbs[n->unique_out()->_idx] == b ) { 610 && _cfg.get_block_for_node(n->unique_out()) == b ) {
611 // All single-use MachSpillCopy(s) that immediately precede their 611 // All single-use MachSpillCopy(s) that immediately precede their
612 // use must color early. If a longer live range steals their 612 // use must color early. If a longer live range steals their
613 // color, the spill copy will split and may push another spill copy 613 // color, the spill copy will split and may push another spill copy
614 // further away resulting in an infinite spill-split-retry cycle. 614 // further away resulting in an infinite spill-split-retry cycle.
615 // Assigning a zero area results in a high score() and a good 615 // Assigning a zero area results in a high score() and a good