src/share/vm/opto/live.cpp

changeset 5509
d1034bd8cefc
parent 4949
8373c19be854
child 5539
adb9a7d94cb5
     1.1 --- a/src/share/vm/opto/live.cpp	Mon Aug 05 15:03:40 2013 -0700
     1.2 +++ b/src/share/vm/opto/live.cpp	Wed Aug 07 17:56:19 2013 +0200
     1.3 @@ -101,7 +101,7 @@
     1.4        for( uint k=1; k<cnt; k++ ) {
     1.5          Node *nk = n->in(k);
     1.6          uint nkidx = nk->_idx;
     1.7 -        if( _cfg._bbs[nkidx] != b ) {
     1.8 +        if (_cfg.get_block_for_node(nk) != b) {
     1.9            uint u = _names[nkidx];
    1.10            use->insert( u );
    1.11            DEBUG_ONLY(def_outside->insert( u );)
    1.12 @@ -121,7 +121,7 @@
    1.13  
    1.14      // Push these live-in things to predecessors
    1.15      for( uint l=1; l<b->num_preds(); l++ ) {
    1.16 -      Block *p = _cfg._bbs[b->pred(l)->_idx];
    1.17 +      Block *p = _cfg.get_block_for_node(b->pred(l));
    1.18        add_liveout( p, use, first_pass );
    1.19  
    1.20        // PhiNode uses go in the live-out set of prior blocks.
    1.21 @@ -142,8 +142,10 @@
    1.22        assert( delta->count(), "missing delta set" );
    1.23  
    1.24        // Add new-live-in to predecessors live-out sets
    1.25 -      for( uint l=1; l<b->num_preds(); l++ )
    1.26 -        add_liveout( _cfg._bbs[b->pred(l)->_idx], delta, first_pass );
    1.27 +      for (uint l = 1; l < b->num_preds(); l++) {
    1.28 +        Block* block = _cfg.get_block_for_node(b->pred(l));
    1.29 +        add_liveout(block, delta, first_pass);
    1.30 +      }
    1.31  
    1.32        freeset(b);
    1.33      } // End of while-worklist-not-empty

mercurial