Mercurial > hg > truffle
comparison src/share/vm/opto/phaseX.cpp @ 927:662f330d7275
6866651: Regression: simple int sum crashes jvm (build 1.6.0_14-b08 and 1.7.0-ea-b59)
Summary: delay dead code elimination in set_req_X to make it safe
Reviewed-by: kvn, never
author | cfang |
---|---|
date | Mon, 17 Aug 2009 12:11:06 -0700 |
parents | 98cb887364d3 |
children | 89e0543e1737 03b336640699 |
comparison
equal
deleted
inserted
replaced
926:c8e2135f7e30 | 927:662f330d7275 |
---|---|
1620 set_req(i, n); | 1620 set_req(i, n); |
1621 | 1621 |
1622 // old goes dead? | 1622 // old goes dead? |
1623 if( old ) { | 1623 if( old ) { |
1624 switch (old->outcnt()) { | 1624 switch (old->outcnt()) { |
1625 case 0: // Kill all his inputs, and recursively kill other dead nodes. | 1625 case 0: |
1626 // Put into the worklist to kill later. We do not kill it now because the | |
1627 // recursive kill will delete the current node (this) if dead-loop exists | |
1626 if (!old->is_top()) | 1628 if (!old->is_top()) |
1627 igvn->remove_dead_node( old ); | 1629 igvn->_worklist.push( old ); |
1628 break; | 1630 break; |
1629 case 1: | 1631 case 1: |
1630 if( old->is_Store() || old->has_special_unique_user() ) | 1632 if( old->is_Store() || old->has_special_unique_user() ) |
1631 igvn->add_users_to_worklist( old ); | 1633 igvn->add_users_to_worklist( old ); |
1632 break; | 1634 break; |