src/share/vm/opto/live.cpp

Print this page

        

*** 132,142 **** // Inner loop: blocks that picked up new live-out values to be propagated while (_worklist->size()) { Block* block = _worklist->pop(); IndexSet *delta = getset(block); ! assert( delta->count(), "missing delta set" ); // Add new-live-in to predecessors live-out sets for (uint l = 1; l < block->num_preds(); l++) { Block* predecessor = _cfg.get_block_for_node(block->pred(l)); add_liveout(predecessor, delta, first_pass); --- 132,142 ---- // Inner loop: blocks that picked up new live-out values to be propagated while (_worklist->size()) { Block* block = _worklist->pop(); IndexSet *delta = getset(block); ! assert( !delta->is_empty(), "missing delta set" ); // Add new-live-in to predecessors live-out sets for (uint l = 1; l < block->num_preds(); l++) { Block* predecessor = _cfg.get_block_for_node(block->pred(l)); add_liveout(predecessor, delta, first_pass);
*** 185,202 **** // is always from thread local storage. IndexSet *PhaseLive::getfreeset( ) { IndexSet *f = _free_IndexSet; if( !f ) { f = new IndexSet; ! // f->set_arena(Thread::current()->resource_area()); ! f->initialize(_maxlrg, Thread::current()->resource_area()); } else { // Pull from free list _free_IndexSet = f->next(); ! //f->_cnt = 0; // Reset to empty ! // f->set_arena(Thread::current()->resource_area()); ! f->initialize(_maxlrg, Thread::current()->resource_area()); } return f; } // Free an IndexSet from a block. --- 185,199 ---- // is always from thread local storage. IndexSet *PhaseLive::getfreeset( ) { IndexSet *f = _free_IndexSet; if( !f ) { f = new IndexSet; ! f->initialize(_maxlrg); } else { // Pull from free list _free_IndexSet = f->next(); ! f->initialize(_maxlrg); } return f; } // Free an IndexSet from a block.
*** 236,246 **** if( live->insert(r) && // If actually inserted... !defs->member( r ) ) // and not defined locally delta->insert(r); // Then add to live-in set } ! if( delta->count() ) { // If actually added things _deltas[p->_pre_order-1] = delta; // Flag as on worklist now if( !on_worklist && // Not on worklist? first_pass.test(p->_pre_order) ) _worklist->push(p); // Actually go on worklist if already 1st pass } else { // Nothing there; just free it --- 233,243 ---- if( live->insert(r) && // If actually inserted... !defs->member( r ) ) // and not defined locally delta->insert(r); // Then add to live-in set } ! if( !delta->is_empty() ) { // If actually added things _deltas[p->_pre_order-1] = delta; // Flag as on worklist now if( !on_worklist && // Not on worklist? first_pass.test(p->_pre_order) ) _worklist->push(p); // Actually go on worklist if already 1st pass } else { // Nothing there; just free it