Mercurial > hg > graal-compiler
comparison src/share/vm/opto/memnode.cpp @ 1826:56601ef83436
6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert
Summary: Missing check for not empty worklist when puting memory node back on worklist and expecting address type update.
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 30 Sep 2010 18:31:45 -0700 |
parents | 5867d89c129b |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1825:80c9354976b0 | 1826:56601ef83436 |
---|---|
254 Node *address = in(MemNode::Address); | 254 Node *address = in(MemNode::Address); |
255 const Type *t_adr = phase->type( address ); | 255 const Type *t_adr = phase->type( address ); |
256 if( t_adr == Type::TOP ) return NodeSentinel; // caller will return NULL | 256 if( t_adr == Type::TOP ) return NodeSentinel; // caller will return NULL |
257 | 257 |
258 if( can_reshape && igvn != NULL && | 258 if( can_reshape && igvn != NULL && |
259 (igvn->_worklist.member(address) || phase->type(address) != adr_type()) ) { | 259 (igvn->_worklist.member(address) || |
260 igvn->_worklist.size() > 0 && (phase->type(address) != adr_type())) ) { | |
260 // The address's base and type may change when the address is processed. | 261 // The address's base and type may change when the address is processed. |
261 // Delay this mem node transformation until the address is processed. | 262 // Delay this mem node transformation until the address is processed. |
262 phase->is_IterGVN()->_worklist.push(this); | 263 phase->is_IterGVN()->_worklist.push(this); |
263 return NodeSentinel; // caller will return NULL | 264 return NodeSentinel; // caller will return NULL |
264 } | 265 } |