< prev index next >

src/hotspot/share/opto/castnode.cpp

Print this page

        

*** 340,352 **** return dom; } if (_carry_dependency) { return this; } // Toned down to rescue meeting at a Phi 3 different oops all implementing // the same interface. ! return (phase->type(in(1)) == phase->type(this)) ? in(1) : this; } //------------------------------Value------------------------------------------ // Take 'join' of input and cast-up type, unless working with an Interface const Type* CheckCastPPNode::Value(PhaseGVN* phase) const { --- 340,357 ---- return dom; } if (_carry_dependency) { return this; } + const Type* t = phase->type(in(1)); + if (EnableVectorReboxing && in(1)->Opcode() == Op_VectorBox) { + return t->higher_equal_speculative(phase->type(this)) ? in(1) : this; + } else { // Toned down to rescue meeting at a Phi 3 different oops all implementing // the same interface. ! return (t == phase->type(this)) ? in(1) : this; ! } } //------------------------------Value------------------------------------------ // Take 'join' of input and cast-up type, unless working with an Interface const Type* CheckCastPPNode::Value(PhaseGVN* phase) const {
< prev index next >