7017746: Regression : C2 compiler crash due to SIGSEGV in PhaseCFG::schedule_early()

Add TEMP edges (and KILL projections) before duplicated operands are removed in Expand() methods.

Reviewed-by: never
This commit is contained in:
Vladimir Kozlov 2011-02-10 14:25:59 -08:00
parent 4c567f5969
commit 5d3ab72d1d
4 changed files with 135 additions and 83 deletions

View file

@ -743,6 +743,9 @@ void Node::add_req_batch( Node *n, uint m ) {
//------------------------------del_req----------------------------------------
// Delete the required edge and compact the edge array
void Node::del_req( uint idx ) {
assert( idx < _cnt, "oob");
assert( !VerifyHashTableKeys || _hash_lock == 0,
"remove node from hash table before modifying it");
// First remove corresponding def-use edge
Node *n = in(idx);
if (n != NULL) n->del_out((Node *)this);