Lines Matching refs:block

193   // Find the start block.
616 Block* block = rpo_at(rpo);
618 if (block->is_parsed()) continue;
620 if (!block->is_merged()) {
621 // Dead block, no state reaches this block
625 // Prepare to parse this block.
626 load_state_from(block);
636 if (block->is_loop_head() || block->is_handler() || has_irreducible && !block->is_ready()) {
641 if (block->is_SEL_head() &&
644 assert(!block->has_merged_backedge(), "only entry paths should be merged for now");
647 set_parse_bci(block->start());
650 int edges = block->pred_count() - block->preds_parsed() + 1; // +1 for original region
664 if (control()->is_Region() && !block->is_loop_head() && !has_irreducible && !block->is_handler()) {
673 tty->print_cr("Block #%d replace %d with %d", block->rpo(), c->_idx, result->_idx);
680 // Parse the block.
697 // Every remaining unprocessed block is dead and may be ignored now.
699 Block* block = rpo_at(rpo);
700 if (!block->is_parsed()) {
702 tty->print_cr("Skipped dead block %d at bci:%d", rpo, block->start());
704 assert(!block->is_merged(), "no half-processed blocks");
911 // Rather than wait for the publication, we simply block the
1063 // Emit any code needed in the pseudo-block before BCI zero.
1118 Block* block = rpo_at(rpo);
1119 block->init_node(this, rpo);
1124 Block* block = rpo_at(rpo);
1125 block->init_graph(this);
1146 // Create the successor list for this parser block.
1160 // Accumulate pred info for the other block, too.
1168 // A block's successors must be distinguishable by BCI.
1190 // We can actually reach here if ciTypeFlow traps out a block
1323 // Load block/map/sp. But not do not touch iter/bci.
1324 void Parse::load_state_from(Block* block) {
1325 set_block(block);
1326 // load the block's JVM state:
1327 set_map(block->start_map());
1328 set_sp( block->start_sp());
1343 Block *b = block();
1347 tty->print("Parsing block #%d at bci [%d,%d), successors: ",
1348 block()->rpo(), block()->start(), block()->limit());
1356 assert(block()->is_merged(), "must be merged before being parsed");
1357 block()->mark_parsed();
1360 // Set iterator to start of block.
1361 iter().reset_to_bci(block()->start());
1372 if (bci() == block()->limit()) {
1373 // Do not walk into the next block until directed by do_all_blocks.
1377 assert(bci() < block()->limit(), "bci still in block");
1387 if (block()->has_trap_at(bci())) {
1390 int trap_index = block()->flow()->trap_index();
1420 // point, starts a new basic block, and is handled like other basic blocks.
1447 // Merge the current mapping into the basic block starting at bci
1457 // Merge the current mapping into the basic block, using a new path
1467 // Merge the current mapping into the basic block starting at bci
1481 Block* b = block();
1483 tty->print_cr("### Missing successor at bci:%d for block #%d (trap_bci:%d)", target_bci, b->rpo(), trap_bci);
1491 tty->print("Merging state at block #%d bci:%d", target->rpo(), target->start());
1508 // Record that a new block has been merged.
1513 // which must not be allowed into this block's map.)
1522 DEBUG_ONLY( target->mark_merged_backedge(block()); )
1529 // Add a Region to start the new basic block. Phis will be added
1551 target->mark_merged_backedge(block());
1558 Block* save_block = block(); // Hang on to incoming block;
1577 if (!block()->flow()->is_irreducible_entry()) {
1580 tty->print_cr("Block #%d replace %d with %d", block()->rpo(), r->_idx, result->_idx);
1754 bool check_elide_phi = block()->is_SEL_head();
1756 if (!check_elide_phi || !block()->can_elide_SEL_phi(i)) {
1772 // Add a previously unaccounted predecessor to this block.
1825 assert(!nocreate, "Cannot build a phi for a block already parsed.");
1829 t = block()->local_type_at(idx - jvms->locoff());
1831 t = block()->stack_type_at(idx - jvms->stkoff());
1878 assert(!nocreate, "Cannot build a phi for a block already parsed.");
1888 assert(!nocreate, "Cannot build a phi for a block already parsed.");
2055 // Capture memory state BEFORE a SafePoint. Since we can block at a