src/share/vm/opto/parse1.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/parse1.cpp Mon Nov 18 21:54:03 2013
--- new/src/share/vm/opto/parse1.cpp Mon Nov 18 21:54:03 2013
*** 1647,1657 ****
--- 1647,1657 ----
// Phis of pointers cannot lose the basic pointer type.
debug_only(const Type* bt1 = phi->bottom_type());
assert(bt1 != Type::BOTTOM, "should not be building conflict phis");
map()->set_req(j, _gvn.transform_no_reclaim(phi));
debug_only(const Type* bt2 = phi->bottom_type());
! assert(bt2->higher_equal(bt1, true), "must be consistent with type-flow");
record_for_igvn(phi);
}
}
} // End of for all values to be merged
*** 2020,2030 ****
--- 2020,2030 ----
const TypeInstPtr *tp = value->bottom_type()->isa_instptr();
if (tp && tp->klass()->is_loaded() &&
!tp->klass()->is_interface()) {
// sharpen the type eagerly; this eases certain assert checking
if (tp->higher_equal(TypeInstPtr::NOTNULL))
! tr = tr->join(TypeInstPtr::NOTNULL, true)->is_instptr();
value = _gvn.transform(new (C) CheckCastPPNode(0,value,tr));
}
}
phi->add_req(value);
}
src/share/vm/opto/parse1.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File