comparison src/share/vm/opto/memnode.cpp @ 247:02a35ad4adf8

6723160: Nightly failure: Error: meet not symmetric Summary: Add missing _instance_id settings and other EA fixes. Reviewed-by: rasbold
author kvn
date Wed, 16 Jul 2008 16:04:39 -0700
parents 9c2ecc2ffb12
children b0fe4deeb9fb
comparison
equal deleted inserted replaced
246:9b66e6287f4a 247:02a35ad4adf8
133 PhiNode *mphi = result->as_Phi(); 133 PhiNode *mphi = result->as_Phi();
134 assert(mphi->bottom_type() == Type::MEMORY, "memory phi required"); 134 assert(mphi->bottom_type() == Type::MEMORY, "memory phi required");
135 const TypePtr *t = mphi->adr_type(); 135 const TypePtr *t = mphi->adr_type();
136 if (t == TypePtr::BOTTOM || t == TypeRawPtr::BOTTOM || 136 if (t == TypePtr::BOTTOM || t == TypeRawPtr::BOTTOM ||
137 t->isa_oopptr() && !t->is_oopptr()->is_known_instance() && 137 t->isa_oopptr() && !t->is_oopptr()->is_known_instance() &&
138 t->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop) { 138 t->is_oopptr()->cast_to_exactness(true)
139 ->is_oopptr()->cast_to_ptr_type(t_oop->ptr())
140 ->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop) {
139 // clone the Phi with our address type 141 // clone the Phi with our address type
140 result = mphi->split_out_instance(t_adr, igvn); 142 result = mphi->split_out_instance(t_adr, igvn);
141 } else { 143 } else {
142 assert(phase->C->get_alias_index(t) == phase->C->get_alias_index(t_adr), "correct memory chain"); 144 assert(phase->C->get_alias_index(t) == phase->C->get_alias_index(t_adr), "correct memory chain");
143 } 145 }