src/share/vm/opto/live.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/live.cpp	Wed Aug  7 01:31:03 2013
--- new/src/share/vm/opto/live.cpp	Wed Aug  7 01:31:02 2013

*** 99,109 **** --- 99,109 ---- use->remove( r ); uint cnt = n->req(); for( uint k=1; k<cnt; k++ ) { Node *nk = n->in(k); uint nkidx = nk->_idx; ! if( _cfg._bbs[nkidx] != b ) { ! if (_cfg.get_block_for_node(nk) != b) { uint u = _names[nkidx]; use->insert( u ); DEBUG_ONLY(def_outside->insert( u );) } }
*** 119,129 **** --- 119,129 ---- use->remove( r ); } // Push these live-in things to predecessors for( uint l=1; l<b->num_preds(); l++ ) { ! Block *p = _cfg._bbs[b->pred(l)->_idx]; ! Block *p = _cfg.get_block_for_node(b->pred(l)); add_liveout( p, use, first_pass ); // PhiNode uses go in the live-out set of prior blocks. for( uint k=i; k>0; k-- ) add_liveout( p, _names[b->_nodes[k-1]->in(l)->_idx], first_pass );
*** 140,151 **** --- 140,153 ---- Block *b = _worklist->pop(); IndexSet *delta = getset(b); assert( delta->count(), "missing delta set" ); // Add new-live-in to predecessors live-out sets ! for( uint l=1; l<b->num_preds(); l++ ) ! add_liveout( _cfg._bbs[b->pred(l)->_idx], delta, first_pass ); ! for (uint l = 1; l < b->num_preds(); l++) { ! Block* block = _cfg.get_block_for_node(b->pred(l)); + add_liveout(block, delta, first_pass); + } freeset(b); } // End of while-worklist-not-empty } // End of for-all-blocks-outer-loop

src/share/vm/opto/live.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File