1.1 --- a/src/share/vm/opto/memnode.cpp Mon Mar 31 16:22:52 2008 -0700 1.2 +++ b/src/share/vm/opto/memnode.cpp Mon Mar 31 18:37:36 2008 -0700 1.3 @@ -1122,6 +1122,12 @@ 1.4 } 1.5 // Split through Phi (see original code in loopopts.cpp). 1.6 assert(phase->C->have_alias_type(addr_t), "instance should have alias type"); 1.7 + 1.8 + // Do nothing here if Identity will find a value 1.9 + // (to avoid infinite chain of value phis generation). 1.10 + if ( !phase->eqv(this, this->Identity(phase)) ) 1.11 + return NULL; 1.12 + 1.13 const Type* this_type = this->bottom_type(); 1.14 int this_index = phase->C->get_alias_index(addr_t); 1.15 int this_offset = addr_t->offset();