comparison src/share/vm/opto/ifg.cpp @ 295:ea18057223c4

6732194: Data corruption dependent on -server/-client/-Xbatch Summary: rematerializing nodes results in incorrect inputs Reviewed-by: rasbold
author never
date Mon, 18 Aug 2008 23:17:51 -0700
parents a61af66fc99e
children 9ee9cf798b59 5f85534046c2
comparison
equal deleted inserted replaced
294:616a07a75c3c 295:ea18057223c4
592 lrgs(r)._area -= cost; 592 lrgs(r)._area -= cost;
593 assert( lrgs(r)._area >= 0, "negative spill area" ); 593 assert( lrgs(r)._area >= 0, "negative spill area" );
594 594
595 // Insure high score for immediate-use spill copies so they get a color 595 // Insure high score for immediate-use spill copies so they get a color
596 if( n->is_SpillCopy() 596 if( n->is_SpillCopy()
597 && lrgs(r)._def != NodeSentinel // MultiDef live range can still split 597 && lrgs(r).is_singledef() // MultiDef live range can still split
598 && n->outcnt() == 1 // and use must be in this block 598 && n->outcnt() == 1 // and use must be in this block
599 && _cfg._bbs[n->unique_out()->_idx] == b ) { 599 && _cfg._bbs[n->unique_out()->_idx] == b ) {
600 // All single-use MachSpillCopy(s) that immediately precede their 600 // All single-use MachSpillCopy(s) that immediately precede their
601 // use must color early. If a longer live range steals their 601 // use must color early. If a longer live range steals their
602 // color, the spill copy will split and may push another spill copy 602 // color, the spill copy will split and may push another spill copy