1.1 --- a/src/share/vm/opto/connode.cpp Tue Jan 14 17:46:48 2014 -0800 1.2 +++ b/src/share/vm/opto/connode.cpp Fri Jan 24 09:31:53 2014 +0100 1.3 @@ -188,7 +188,7 @@ 1.4 const Type *CMoveNode::Value( PhaseTransform *phase ) const { 1.5 if( phase->type(in(Condition)) == Type::TOP ) 1.6 return Type::TOP; 1.7 - return phase->type(in(IfFalse))->meet(phase->type(in(IfTrue))); 1.8 + return phase->type(in(IfFalse))->meet_speculative(phase->type(in(IfTrue))); 1.9 } 1.10 1.11 //------------------------------make------------------------------------------- 1.12 @@ -392,14 +392,14 @@ 1.13 //============================================================================= 1.14 // If input is already higher or equal to cast type, then this is an identity. 1.15 Node *ConstraintCastNode::Identity( PhaseTransform *phase ) { 1.16 - return phase->type(in(1))->higher_equal(_type) ? in(1) : this; 1.17 + return phase->type(in(1))->higher_equal_speculative(_type) ? in(1) : this; 1.18 } 1.19 1.20 //------------------------------Value------------------------------------------ 1.21 // Take 'join' of input and cast-up type 1.22 const Type *ConstraintCastNode::Value( PhaseTransform *phase ) const { 1.23 if( in(0) && phase->type(in(0)) == Type::TOP ) return Type::TOP; 1.24 - const Type* ft = phase->type(in(1))->filter(_type); 1.25 +const Type* ft = phase->type(in(1))->filter_speculative(_type); 1.26 1.27 #ifdef ASSERT 1.28 // Previous versions of this function had some special case logic, 1.29 @@ -409,7 +409,7 @@ 1.30 { 1.31 const Type* t1 = phase->type(in(1)); 1.32 if( t1 == Type::TOP ) assert(ft == Type::TOP, "special case #1"); 1.33 - const Type* rt = t1->join(_type); 1.34 + const Type* rt = t1->join_speculative(_type); 1.35 if (rt->empty()) assert(ft == Type::TOP, "special case #2"); 1.36 break; 1.37 }