src/share/vm/opto/connode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/connode.cpp	Mon Nov 18 21:54:03 2013
--- new/src/share/vm/opto/connode.cpp	Mon Nov 18 21:54:03 2013

*** 186,196 **** --- 186,196 ---- //------------------------------Value------------------------------------------ // Result is the meet of inputs const Type *CMoveNode::Value( PhaseTransform *phase ) const { if( phase->type(in(Condition)) == Type::TOP ) return Type::TOP; ! return phase->type(in(IfFalse))->meet(phase->type(in(IfTrue)), true); } //------------------------------make------------------------------------------- // Make a correctly-flavored CMove. Since _type is directly determined // from the inputs we do not need to specify it here.
*** 390,417 **** --- 390,417 ---- //============================================================================= // If input is already higher or equal to cast type, then this is an identity. Node *ConstraintCastNode::Identity( PhaseTransform *phase ) { ! return phase->type(in(1))->higher_equal(_type, true) ? in(1) : this; } //------------------------------Value------------------------------------------ // Take 'join' of input and cast-up type const Type *ConstraintCastNode::Value( PhaseTransform *phase ) const { if( in(0) && phase->type(in(0)) == Type::TOP ) return Type::TOP; ! const Type* ft = phase->type(in(1))->filter(_type); ! const Type* ft = phase->type(in(1))->filter(_type, true); #ifdef ASSERT // Previous versions of this function had some special case logic, // which is no longer necessary. Make sure of the required effects. switch (Opcode()) { case Op_CastII: { const Type* t1 = phase->type(in(1)); if( t1 == Type::TOP ) assert(ft == Type::TOP, "special case #1"); ! const Type* rt = t1->join(_type, true); if (rt->empty()) assert(ft == Type::TOP, "special case #2"); break; } case Op_CastPP: if (phase->type(in(1)) == TypePtr::NULL_PTR &&

src/share/vm/opto/connode.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File