< prev index next >

src/share/vm/opto/escape.cpp

Print this page
rev 10535 : incremental inlining fixes

*** 2062,2073 **** if (find_second_addp(n, n->in(AddPNode::Base)) == NULL) { bt = T_OBJECT; } } } else if (offset != oopDesc::klass_offset_in_bytes()) { ! if (adr_type->isa_instptr()) { ! ciField* field = _compile->alias_type(adr_type->isa_instptr())->field(); if (field != NULL) { bt = field->layout_type(); } else { // Check for unsafe oop field access if (n->has_out_with(Op_StoreP, Op_LoadP, Op_StoreN, Op_LoadN)) { --- 2062,2073 ---- if (find_second_addp(n, n->in(AddPNode::Base)) == NULL) { bt = T_OBJECT; } } } else if (offset != oopDesc::klass_offset_in_bytes()) { ! if (adr_type->isa_instptr() || adr_type->isa_valuetypeptr()) { ! ciField* field = _compile->alias_type(adr_type->is_ptr())->field(); if (field != NULL) { bt = field->layout_type(); } else { // Check for unsafe oop field access if (n->has_out_with(Op_StoreP, Op_LoadP, Op_StoreN, Op_LoadN)) {
*** 2992,3002 **** igvn->hash_delete(n); igvn->set_type(n, tinst); n->raise_bottom_type(tinst); igvn->hash_insert(n); record_for_optimizer(n); ! if (alloc->is_Allocate() && (t->isa_instptr() || t->isa_aryptr())) { // First, put on the worklist all Field edges from Connection Graph // which is more accurate than putting immediate users from Ideal Graph. for (EdgeIterator e(ptn); e.has_next(); e.next()) { PointsToNode* tgt = e.get(); --- 2992,3002 ---- igvn->hash_delete(n); igvn->set_type(n, tinst); n->raise_bottom_type(tinst); igvn->hash_insert(n); record_for_optimizer(n); ! if (alloc->is_Allocate() && (t->isa_instptr() || t->isa_aryptr() || t->isa_valuetypeptr())) { // First, put on the worklist all Field edges from Connection Graph // which is more accurate than putting immediate users from Ideal Graph. for (EdgeIterator e(ptn); e.has_next(); e.next()) { PointsToNode* tgt = e.get();
< prev index next >