Mercurial > hg > graal-jvmci-8
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 |