< prev index next >
src/hotspot/share/opto/compile.cpp
Print this page
*** 3431,3444 ****
// Check to see if address types have grounded out somehow.
const TypeInstPtr *tp = mem->in(MemNode::Address)->bottom_type()->isa_instptr();
assert( !tp || oop_offset_is_sane(tp), "" );
}
#endif
! if (EnableValhalla && (nop == Op_LoadKlass || nop == Op_LoadNKlass)) {
const TypeKlassPtr* tk = n->bottom_type()->make_ptr()->is_klassptr();
assert(!tk->klass_is_exact(), "should have been folded");
! if (tk->klass()->can_be_value_array_klass() && n->as_Mem()->adr_type()->offset() == oopDesc::klass_offset_in_bytes()) {
// Array load klass needs to filter out property bits (but not
// GetNullFreePropertyNode or GetFlattenedPropertyNode which
// needs to extract the storage property bits)
uint last = unique();
Node* pointer = NULL;
--- 3431,3447 ----
// Check to see if address types have grounded out somehow.
const TypeInstPtr *tp = mem->in(MemNode::Address)->bottom_type()->isa_instptr();
assert( !tp || oop_offset_is_sane(tp), "" );
}
#endif
! if (EnableValhalla &&
! ((nop == Op_LoadKlass && ((LoadKlassNode*)n)->clear_prop_bits()) ||
! (nop == Op_LoadNKlass && ((LoadNKlassNode*)n)->clear_prop_bits()))) {
const TypeKlassPtr* tk = n->bottom_type()->make_ptr()->is_klassptr();
assert(!tk->klass_is_exact(), "should have been folded");
! assert(n->as_Mem()->adr_type()->offset() == oopDesc::klass_offset_in_bytes(), "unexpected LoadKlass");
! if (tk->klass()->can_be_value_array_klass()) {
// Array load klass needs to filter out property bits (but not
// GetNullFreePropertyNode or GetFlattenedPropertyNode which
// needs to extract the storage property bits)
uint last = unique();
Node* pointer = NULL;
< prev index next >