aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/chaitin.cpp
diff options
context:
space:
mode:
authornever <none@none>2008-08-18 23:17:51 -0700
committernever <none@none>2008-08-18 23:17:51 -0700
commit00685162833278853c0889caa0053b9ecec75d3a (patch)
treeea3fb6ed12db8d63329e0c3d9093b38318492635 /src/share/vm/opto/chaitin.cpp
parent3b05932b538e0c70919905f1dc2efc039acfce38 (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.cpp6
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" );