Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/macro.cpp @ 223:1dd146f17531
6716441: error in meet with +DoEscapeAnalysis
Summary: Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.
Reviewed-by: jrose, never
author | kvn |
---|---|
date | Thu, 26 Jun 2008 13:34:00 -0700 |
parents | 1e026f8da827 |
children | 9c2ecc2ffb12 fab5f738c515 |
line wrap: on
line diff
--- a/src/share/vm/opto/macro.cpp Tue Jun 24 16:00:14 2008 -0700 +++ b/src/share/vm/opto/macro.cpp Thu Jun 26 13:34:00 2008 -0700 @@ -320,9 +320,9 @@ // Search the last value stored into the object's field. Node *PhaseMacroExpand::value_from_mem(Node *sfpt_mem, BasicType ft, const Type *ftype, const TypeOopPtr *adr_t, Node *alloc) { - assert(adr_t->is_instance_field(), "instance required"); - uint instance_id = adr_t->instance_id(); - assert(instance_id == alloc->_idx, "wrong allocation"); + assert(adr_t->is_known_instance_field(), "instance required"); + int instance_id = adr_t->instance_id(); + assert((uint)instance_id == alloc->_idx, "wrong allocation"); int alias_idx = C->get_alias_index(adr_t); int offset = adr_t->offset(); @@ -354,7 +354,7 @@ const TypeOopPtr* atype = mem->as_Store()->adr_type()->isa_oopptr(); assert(atype != NULL, "address type must be oopptr"); assert(C->get_alias_index(atype) == alias_idx && - atype->is_instance_field() && atype->offset() == offset && + atype->is_known_instance_field() && atype->offset() == offset && atype->instance_id() == instance_id, "store is correct memory slice"); done = true; } else if (mem->is_Phi()) {