src/share/vm/opto/escape.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6710487 Cdiff src/share/vm/opto/escape.cpp

src/share/vm/opto/escape.cpp

Print this page

        

*** 960,976 **** TypeNode *tn = n->as_Type(); tinst = igvn->type(val)->isa_oopptr(); assert(tinst != NULL && tinst->is_instance() && tinst->instance_id() == elem , "instance type expected."); - const TypeOopPtr *tn_t = NULL; const Type *tn_type = igvn->type(tn); ! if (tn_type->isa_narrowoop()) { ! tn_t = tn_type->is_narrowoop()->make_oopptr()->isa_oopptr(); ! } else { ! tn_t = tn_type->isa_oopptr(); ! } if (tn_t != NULL && tinst->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE)->higher_equal(tn_t)) { if (tn_type->isa_narrowoop()) { tn_type = tinst->make_narrowoop(); --- 960,971 ---- TypeNode *tn = n->as_Type(); tinst = igvn->type(val)->isa_oopptr(); assert(tinst != NULL && tinst->is_instance() && tinst->instance_id() == elem , "instance type expected."); const Type *tn_type = igvn->type(tn); ! const TypeOopPtr *tn_t = tn_type->make_ptr()->isa_oopptr(); if (tn_t != NULL && tinst->cast_to_instance(TypeOopPtr::UNKNOWN_INSTANCE)->higher_equal(tn_t)) { if (tn_type->isa_narrowoop()) { tn_type = tinst->make_narrowoop();
*** 1919,1931 **** } case Op_StoreP: case Op_StoreN: { const Type *adr_type = phase->type(n->in(MemNode::Address)); ! if (adr_type->isa_narrowoop()) { ! adr_type = adr_type->is_narrowoop()->make_oopptr(); ! } if (adr_type->isa_oopptr()) { add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); } else { Node* adr = n->in(MemNode::Address); if (adr->is_AddP() && phase->type(adr) == TypeRawPtr::NOTNULL && --- 1914,1924 ---- } case Op_StoreP: case Op_StoreN: { const Type *adr_type = phase->type(n->in(MemNode::Address)); ! adr_type = adr_type->make_ptr(); if (adr_type->isa_oopptr()) { add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); } else { Node* adr = n->in(MemNode::Address); if (adr->is_AddP() && phase->type(adr) == TypeRawPtr::NOTNULL &&
*** 1946,1958 **** case Op_StorePConditional: case Op_CompareAndSwapP: case Op_CompareAndSwapN: { const Type *adr_type = phase->type(n->in(MemNode::Address)); ! if (adr_type->isa_narrowoop()) { ! adr_type = adr_type->is_narrowoop()->make_oopptr(); ! } if (adr_type->isa_oopptr()) { add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); } else { _processed.set(n->_idx); return; --- 1939,1949 ---- case Op_StorePConditional: case Op_CompareAndSwapP: case Op_CompareAndSwapN: { const Type *adr_type = phase->type(n->in(MemNode::Address)); ! adr_type = adr_type->make_ptr(); if (adr_type->isa_oopptr()) { add_node(n, PointsToNode::UnknownType, PointsToNode::UnknownEscape, false); } else { _processed.set(n->_idx); return;
*** 2129,2142 **** case Op_StorePConditional: case Op_CompareAndSwapP: case Op_CompareAndSwapN: { Node *adr = n->in(MemNode::Address); ! const Type *adr_type = phase->type(adr); ! if (adr_type->isa_narrowoop()) { ! adr_type = adr_type->is_narrowoop()->make_oopptr(); ! } #ifdef ASSERT if (!adr_type->isa_oopptr()) assert(phase->type(adr) == TypeRawPtr::NOTNULL, "Op_StoreP"); #endif --- 2120,2130 ---- case Op_StorePConditional: case Op_CompareAndSwapP: case Op_CompareAndSwapN: { Node *adr = n->in(MemNode::Address); ! const Type *adr_type = phase->type(adr)->make_ptr(); #ifdef ASSERT if (!adr_type->isa_oopptr()) assert(phase->type(adr) == TypeRawPtr::NOTNULL, "Op_StoreP"); #endif
src/share/vm/opto/escape.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File