src/share/vm/opto/node.cpp

changeset 740
ab075d07f1ba
parent 670
9c2ecc2ffb12
child 1040
98cb887364d3
     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() ) {

mercurial