Mercurial > hg > truffle
comparison src/share/vm/opto/cfgnode.cpp @ 3399:b55f5bd7ec66
7045506: assert(!can_reshape || !new_phi) failed: for igvn new phi should be hooked
Summary: Replace the assert in PhiNode::Ideal with check to avoid transformation of new phi.
Reviewed-by: never
author | kvn |
---|---|
date | Sat, 21 May 2011 13:59:55 -0700 |
parents | bad7ecd0b6ed |
children | c96c3eb1efae |
comparison
equal
deleted
inserted
replaced
3398:789d04408ca3 | 3399:b55f5bd7ec66 |
---|---|
1554 if( phase->type_or_null(r) == Type::TOP ) // Dead code? | 1554 if( phase->type_or_null(r) == Type::TOP ) // Dead code? |
1555 return NULL; // No change | 1555 return NULL; // No change |
1556 | 1556 |
1557 Node *top = phase->C->top(); | 1557 Node *top = phase->C->top(); |
1558 bool new_phi = (outcnt() == 0); // transforming new Phi | 1558 bool new_phi = (outcnt() == 0); // transforming new Phi |
1559 assert(!can_reshape || !new_phi, "for igvn new phi should be hooked"); | 1559 // No change for igvn if new phi is not hooked |
1560 if (new_phi && can_reshape) | |
1561 return NULL; | |
1560 | 1562 |
1561 // The are 2 situations when only one valid phi's input is left | 1563 // The are 2 situations when only one valid phi's input is left |
1562 // (in addition to Region input). | 1564 // (in addition to Region input). |
1563 // One: region is not loop - replace phi with this input. | 1565 // One: region is not loop - replace phi with this input. |
1564 // Two: region is loop - replace phi with top since this data path is dead | 1566 // Two: region is loop - replace phi with top since this data path is dead |