1.1 --- a/src/share/vm/opto/node.cpp Wed Aug 27 00:21:55 2008 -0700 1.2 +++ b/src/share/vm/opto/node.cpp Wed Aug 27 09:15:46 2008 -0700 1.3 @@ -1166,16 +1166,15 @@ 1.4 // using it dead as well. This will happen normally via the usual IterGVN 1.5 // worklist but this call is more efficient. Do not update use-def info 1.6 // inside the dead region, just at the borders. 1.7 -static bool kill_dead_code( Node *dead, PhaseIterGVN *igvn ) { 1.8 +static void kill_dead_code( Node *dead, PhaseIterGVN *igvn ) { 1.9 // Con's are a popular node to re-hit in the hash table again. 1.10 - if( dead->is_Con() ) return false; 1.11 + if( dead->is_Con() ) return; 1.12 1.13 // Can't put ResourceMark here since igvn->_worklist uses the same arena 1.14 // for verify pass with +VerifyOpto and we add/remove elements in it here. 1.15 Node_List nstack(Thread::current()->resource_area()); 1.16 1.17 Node *top = igvn->C->top(); 1.18 - bool progress = false; 1.19 nstack.push(dead); 1.20 1.21 while (nstack.size() > 0) { 1.22 @@ -1214,7 +1213,6 @@ 1.23 for (uint i=0; i < dead->req(); i++) { 1.24 Node *n = dead->in(i); // Get input to dead guy 1.25 if (n != NULL && !n->is_top()) { // Input is valid? 1.26 - progress = true; 1.27 dead->set_req(i, top); // Smash input away 1.28 if (n->outcnt() == 0) { // Input also goes dead? 1.29 if (!n->is_Con()) 1.30 @@ -1233,7 +1231,7 @@ 1.31 } 1.32 } // (dead->outcnt() == 0) 1.33 } // while (nstack.size() > 0) for outputs 1.34 - return progress; 1.35 + return; 1.36 } 1.37 1.38 //------------------------------remove_dead_region----------------------------- 1.39 @@ -1243,7 +1241,8 @@ 1.40 // Lost control into this guy? I.e., it became unreachable? 1.41 // Aggressively kill all unreachable code. 1.42 if (can_reshape && n->is_top()) { 1.43 - return kill_dead_code(this, phase->is_IterGVN()); 1.44 + kill_dead_code(this, phase->is_IterGVN()); 1.45 + return false; // Node is dead. 1.46 } 1.47 1.48 if( n->is_Region() && n->as_Region()->is_copy() ) {