Lines Matching refs:block

48 // whether two paths which reach a given block are unique, and
382 tty->print_cr(">> Interpreting pre-OSR block %d:", non_osr_start);
384 Block* block = block_at(non_osr_start, jsrs);
385 assert(block->limit() == start_bci(), "must flow forward to start");
386 flow_block(block, state, jsrs);
589 // Type flow after this block may still be needed in two situations:
591 // 2) C2 does an OSR compile in a later block (see bug 4778368).
1577 // A basic block.
1602 tty->print_cr(">> Created new block");
1630 tty->print(">> Computing successors for block ");
1637 Block* block = NULL;
1645 assert(str->cur_bci() == limit(), "bad block end");
1646 // This block simply falls through to the next.
1650 Block* block = analyzer->block_at(limit(), _jsrs);
1652 _successors->append(block);
1658 assert(str->next_bci() == limit(), "bad block end");
1659 // This block is not a simple fall-though. Interpret
1711 Block* block = analyzer->block_at(bci, jsrs);
1713 _successors->append(block);
1716 block = analyzer->block_at(bci, jsrs);
1718 _successors->append_if_missing(block);
1730 Block* block = analyzer->block_at(bci, jsrs);
1732 _successors->append(block);
1736 Block* block = analyzer->block_at(bci, jsrs);
1738 _successors->append_if_missing(block);
1783 tty->print(">> Computing exceptions for block ");
1791 // Any bci in the block will do.
1820 // Use this only to make a pre-existing public block into a backedge copy.
1949 // basic block structure
1980 // Get the next basic block from our work list.
1993 // Add a basic block to our work list.
1995 void ciTypeFlow::add_to_work_list(ciTypeFlow::Block* block) {
1996 assert(!block->is_on_work_list(), "must not already be on work list");
1999 tty->print(">> Adding block ");
2000 block->print_value_on(tty);
2004 block->set_on_work_list(true);
2010 int po = block->post_order();
2018 block->set_next(_work_list);
2019 _work_list = block;
2021 block->set_next(current);
2022 prev->set_next(block);
2033 // Return the block beginning at bci which has a JsrSet compatible
2038 tty->print(">> Requesting block for %d/", bci);
2045 Block* block = get_block_for(ciblk->index(), jsrs, option);
2047 assert(block == NULL? (option == no_create): block->is_backedge_copy() == (option == create_backedge_copy), "create option consistent with result");
2050 if (block != NULL) {
2051 tty->print(">> Found block ");
2052 block->print_value_on(tty);
2055 tty->print_cr(">> No such block.");
2059 return block;
2101 Block* block = exceptions->at(i);
2110 if (block->meet_exception(exception_klass, state)) {
2112 if (block->has_post_order() &&
2113 !block->is_on_work_list()) {
2114 add_to_work_list(block);
2129 Block* block = successors->at(i);
2130 if (block->meet(state)) {
2132 if (block->has_post_order() &&
2133 !block->is_on_work_list()) {
2134 add_to_work_list(block);
2197 // Don't clone head of OSR loop to get correct types in start block.
2292 // vector of a basic block. Push the changed state to succeeding
2294 void ciTypeFlow::flow_block(ciTypeFlow::Block* block,
2300 block->print_on(tty);
2302 assert(block->has_pre_order(), "pre-order is assigned before 1st flow");
2304 int start = block->start();
2305 int limit = block->limit();
2306 int control = block->control();
2311 // Grab the state from the current block.
2312 block->copy_state_into(state);
2315 GrowableArray<Block*>* exceptions = block->exceptions();
2316 GrowableArray<ciInstanceKlass*>* exc_klasses = block->exc_klasses();
2338 block->set_has_monitorenter();
2343 // We have encountered a trap. Record it in this block.
2344 block->set_trap(state->trap_bci(), state->trap_index());
2348 block->print_on(tty);
2351 // Save set of locals defined in this block
2352 block->def_locals()->add(state->def_locals());
2355 block->successors(&str, state, jsrs);
2373 block->copy_jsrs_into(jsrs);
2377 successors = block->successors(&str, state, jsrs);
2383 successors = block->successors(&str, NULL, NULL);
2386 // Save set of locals defined in this block
2387 block->def_locals()->add(state->def_locals());
2700 // Create the method entry block.
2756 // Create the block map, which indexes blocks in reverse post-order.
2774 Block* block = _block_map[j];
2777 GrowableArray<Block*>* l = e? block->exceptions(): block->successors();
2782 tty->print("Removing dead %s successor of #%d: ", (e? "exceptional": "normal"), block->pre_order());
2797 // Find a block with this ciBlock which has a compatible JsrSet.
2798 // If no such block exists, create it, unless the option is no_create.
2815 Block* block = blocks->at(i);
2816 if (!block->is_backedge_copy() && block->is_compatible_with(jsrs)) {
2817 return block;
2825 // We did not find a compatible block. Create one.
2826 Block* new_block = new (a) Block(this, _methodBlocks->block(ciBlockIndex), jsrs);
2845 Block* block = blocks->at(i);
2846 if (block->is_backedge_copy() && block->is_compatible_with(jsrs)) {
2927 Block* block = blocks->at(i);
2928 block->print_on(st);