8075922: assert(t == t_no_spec) fails in phaseX.cpp

Subgraph becomes dead RegionNode::Ideal() but is not destroyed

Reviewed-by: kvn, vlivanov
This commit is contained in:
Roland Westrelin 2015-03-25 14:25:53 +01:00
parent 0129e6502d
commit 1c38036fd8

View File

@ -525,13 +525,16 @@ Node *RegionNode::Ideal(PhaseGVN *phase, bool can_reshape) {
// Cut the backedge input and remove phis since no data paths left.
// We don't cut outputs to other nodes here since we need to put them
// on the worklist.
PhaseIterGVN *igvn = phase->is_IterGVN();
if (in(1)->outcnt() == 1) {
igvn->_worklist.push(in(1));
}
del_req(1);
cnt = 0;
assert( req() == 1, "no more inputs expected" );
uint max = outcnt();
bool progress = true;
Node *top = phase->C->top();
PhaseIterGVN *igvn = phase->is_IterGVN();
DUIterator j;
while(progress) {
progress = false;