提交 de702b3a 编写于 作者: K kvn

6682236: C2 hits ideal nodes limit during IGVN optimization with EA

Summary: missing check in LoadNode::Ideal() causes infinite generation of a value Phi.
Reviewed-by: jrose, never
上级 f1f4928a
...@@ -1122,6 +1122,12 @@ Node *LoadNode::Ideal(PhaseGVN *phase, bool can_reshape) { ...@@ -1122,6 +1122,12 @@ Node *LoadNode::Ideal(PhaseGVN *phase, bool can_reshape) {
} }
// Split through Phi (see original code in loopopts.cpp). // Split through Phi (see original code in loopopts.cpp).
assert(phase->C->have_alias_type(addr_t), "instance should have alias type"); assert(phase->C->have_alias_type(addr_t), "instance should have alias type");
// Do nothing here if Identity will find a value
// (to avoid infinite chain of value phis generation).
if ( !phase->eqv(this, this->Identity(phase)) )
return NULL;
const Type* this_type = this->bottom_type(); const Type* this_type = this->bottom_type();
int this_index = phase->C->get_alias_index(addr_t); int this_index = phase->C->get_alias_index(addr_t);
int this_offset = addr_t->offset(); int this_offset = addr_t->offset();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册