src/share/vm/opto/parse1.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7092905 Sdiff src/share/vm/opto

src/share/vm/opto/parse1.cpp

Print this page




 584 #ifndef PRODUCT
 585   BytecodeParseHistogram *parse_histogram_obj = new (C->env()->arena()) BytecodeParseHistogram(this, C);
 586   set_parse_histogram( parse_histogram_obj );
 587 #endif
 588 
 589   // Parse all the basic blocks.
 590   do_all_blocks();
 591 
 592   C->set_default_node_notes(caller_nn);
 593 
 594   // Check for bailouts during conversion to graph
 595   if (failing()) {
 596     if (log)  log->done("parse");
 597     return;
 598   }
 599 
 600   // Fix up all exiting control flow.
 601   set_map(entry_map);
 602   do_exits();
 603 
 604   if (log)  log->done("parse nodes='%d' memory='%d'",
 605                       C->unique(), C->node_arena()->used());
 606 }
 607 
 608 //---------------------------do_all_blocks-------------------------------------
 609 void Parse::do_all_blocks() {
 610   bool has_irreducible = flow()->has_irreducible_entry();
 611 
 612   // Walk over all blocks in Reverse Post-Order.
 613   while (true) {
 614     bool progress = false;
 615     for (int rpo = 0; rpo < block_count(); rpo++) {
 616       Block* block = rpo_at(rpo);
 617 
 618       if (block->is_parsed()) continue;
 619 
 620       if (!block->is_merged()) {
 621         // Dead block, no state reaches this block
 622         continue;
 623       }
 624 
 625       // Prepare to parse this block.




 584 #ifndef PRODUCT
 585   BytecodeParseHistogram *parse_histogram_obj = new (C->env()->arena()) BytecodeParseHistogram(this, C);
 586   set_parse_histogram( parse_histogram_obj );
 587 #endif
 588 
 589   // Parse all the basic blocks.
 590   do_all_blocks();
 591 
 592   C->set_default_node_notes(caller_nn);
 593 
 594   // Check for bailouts during conversion to graph
 595   if (failing()) {
 596     if (log)  log->done("parse");
 597     return;
 598   }
 599 
 600   // Fix up all exiting control flow.
 601   set_map(entry_map);
 602   do_exits();
 603 
 604   if (log)  log->done("parse nodes='%d' live='%d' memory='%d'",
 605                       C->unique(), C->live_nodes(), C->node_arena()->used());
 606 }
 607 
 608 //---------------------------do_all_blocks-------------------------------------
 609 void Parse::do_all_blocks() {
 610   bool has_irreducible = flow()->has_irreducible_entry();
 611 
 612   // Walk over all blocks in Reverse Post-Order.
 613   while (true) {
 614     bool progress = false;
 615     for (int rpo = 0; rpo < block_count(); rpo++) {
 616       Block* block = rpo_at(rpo);
 617 
 618       if (block->is_parsed()) continue;
 619 
 620       if (!block->is_merged()) {
 621         // Dead block, no state reaches this block
 622         continue;
 623       }
 624 
 625       // Prepare to parse this block.


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