diff -r 18d56ca3e901 -r ad5dd04754ee src/share/vm/opto/cfgnode.cpp --- a/src/share/vm/opto/cfgnode.cpp Mon Dec 17 11:00:22 2012 -0800 +++ b/src/share/vm/opto/cfgnode.cpp Tue Dec 18 14:55:25 2012 +0100 @@ -1566,6 +1566,10 @@ Node* n = in(j); // Get the input if (rc == NULL || phase->type(rc) == Type::TOP) { if (n != top) { // Not already top? + PhaseIterGVN *igvn = phase->is_IterGVN(); + if (can_reshape && igvn != NULL) { + igvn->_worklist.push(r); + } set_req(j, top); // Nuke it down progress = this; // Record progress }