6723160: Nightly failure: Error: meet not symmetric

Add missing _instance_id settings and other EA fixes.

Reviewed-by: rasbold
This commit is contained in:
Vladimir Kozlov 2008-07-16 16:04:39 -07:00
parent a8fc1db8c1
commit fae39068e8
11 changed files with 224 additions and 129 deletions

View file

@ -135,7 +135,9 @@ Node *MemNode::optimize_memory_chain(Node *mchain, const TypePtr *t_adr, PhaseGV
const TypePtr *t = mphi->adr_type();
if (t == TypePtr::BOTTOM || t == TypeRawPtr::BOTTOM ||
t->isa_oopptr() && !t->is_oopptr()->is_known_instance() &&
t->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop) {
t->is_oopptr()->cast_to_exactness(true)
->is_oopptr()->cast_to_ptr_type(t_oop->ptr())
->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop) {
// clone the Phi with our address type
result = mphi->split_out_instance(t_adr, igvn);
} else {