src/share/vm/opto/lcm.cpp

Print this page

        

*** 415,426 **** map_node_to_block(nul_chk, block); // Redirect users of old_test to nul_chk for (DUIterator_Last i2min, i2 = old_tst->last_outs(i2min); i2 >= i2min; --i2) old_tst->last_out(i2)->set_req(0, nul_chk); // Clean-up any dead code ! for (uint i3 = 0; i3 < old_tst->req(); i3++) old_tst->set_req(i3, NULL); latency_from_uses(nul_chk); latency_from_uses(best); } --- 415,433 ---- map_node_to_block(nul_chk, block); // Redirect users of old_test to nul_chk for (DUIterator_Last i2min, i2 = old_tst->last_outs(i2min); i2 >= i2min; --i2) old_tst->last_out(i2)->set_req(0, nul_chk); // Clean-up any dead code ! for (uint i3 = 0; i3 < old_tst->req(); i3++) { ! Node* in = old_tst->in(i3); old_tst->set_req(i3, NULL); + if (in->outcnt() == 0) { + // Remove dead input node + in->disconnect_inputs(NULL, C); + block->find_remove(in); + } + } latency_from_uses(nul_chk); latency_from_uses(best); }