diff options
author | never <none@none> | 2008-08-18 23:17:51 -0700 |
---|---|---|
committer | never <none@none> | 2008-08-18 23:17:51 -0700 |
commit | 00685162833278853c0889caa0053b9ecec75d3a (patch) | |
tree | ea3fb6ed12db8d63329e0c3d9093b38318492635 /src/share/vm/opto/chaitin.cpp | |
parent | 3b05932b538e0c70919905f1dc2efc039acfce38 (diff) |
6732194: Data corruption dependent on -server/-client/-Xbatch
Summary: rematerializing nodes results in incorrect inputs
Reviewed-by: rasbold
Diffstat (limited to 'src/share/vm/opto/chaitin.cpp')
-rw-r--r-- | src/share/vm/opto/chaitin.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/share/vm/opto/chaitin.cpp b/src/share/vm/opto/chaitin.cpp index 5d7efdb76..74a0fce90 100644 --- a/src/share/vm/opto/chaitin.cpp +++ b/src/share/vm/opto/chaitin.cpp @@ -43,7 +43,7 @@ void LRG::dump( ) const { if( _degree_valid ) tty->print( "%d ", _eff_degree ); else tty->print("? "); - if( _def == NodeSentinel ) { + if( is_multidef() ) { tty->print("MultiDef "); if (_defs != NULL) { tty->print("("); @@ -765,7 +765,7 @@ void PhaseChaitin::gather_lrg_masks( bool after_aggressive ) { // if the LRG is an unaligned pair, we will have to spill // so clear the LRG's register mask if it is not already spilled if ( !n->is_SpillCopy() && - (lrg._def == NULL || lrg._def == NodeSentinel || !lrg._def->is_SpillCopy()) && + (lrg._def == NULL || lrg.is_multidef() || !lrg._def->is_SpillCopy()) && lrgmask.is_misaligned_Pair()) { lrg.Clear(); } @@ -1282,7 +1282,7 @@ uint PhaseChaitin::Select( ) { // Live range is live and no colors available else { assert( lrg->alive(), "" ); - assert( !lrg->_fat_proj || lrg->_def == NodeSentinel || + assert( !lrg->_fat_proj || lrg->is_multidef() || lrg->_def->outcnt() > 0, "fat_proj cannot spill"); assert( !orig_mask.is_AllStack(), "All Stack does not spill" ); |