Mercurial > hg > graal-jvmci-8
changeset 82:de93acbb64fc
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
author | kvn |
---|---|
date | Mon, 31 Mar 2008 18:37:36 -0700 |
parents | dee7a3f3dc9d |
children | d3cd40645d0d |
files | src/share/vm/opto/memnode.cpp |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp Mon Mar 31 16:22:52 2008 -0700 +++ b/src/share/vm/opto/memnode.cpp Mon Mar 31 18:37:36 2008 -0700 @@ -1122,6 +1122,12 @@ } // Split through Phi (see original code in loopopts.cpp). 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(); int this_index = phase->C->get_alias_index(addr_t); int this_offset = addr_t->offset();