hotspot/src/share/vm/opto/output.cpp
changeset 2531 c974c3e10bf7
parent 2131 98f9cef66a34
child 3276 bda7d4532054
child 3261 c7d5aae8d3f7
equal deleted inserted replaced
2530:8e437991f5c0 2531:c974c3e10bf7
  2254     // in the block), because they have delay slots we can fill.  Calls all
  2254     // in the block), because they have delay slots we can fill.  Calls all
  2255     // have their delay slots filled in the template expansions, so we don't
  2255     // have their delay slots filled in the template expansions, so we don't
  2256     // bother scheduling them.
  2256     // bother scheduling them.
  2257     Node *last = bb->_nodes[_bb_end];
  2257     Node *last = bb->_nodes[_bb_end];
  2258     if( last->is_Catch() ||
  2258     if( last->is_Catch() ||
  2259        (last->is_Mach() && last->as_Mach()->ideal_Opcode() == Op_Halt) ) {
  2259        // Exclude unreachable path case when Halt node is in a separate block.
       
  2260        (_bb_end > 1 && last->is_Mach() && last->as_Mach()->ideal_Opcode() == Op_Halt) ) {
  2260       // There must be a prior call.  Skip it.
  2261       // There must be a prior call.  Skip it.
  2261       while( !bb->_nodes[--_bb_end]->is_Call() ) {
  2262       while( !bb->_nodes[--_bb_end]->is_Call() ) {
  2262         assert( bb->_nodes[_bb_end]->is_Proj(), "skipping projections after expected call" );
  2263         assert( bb->_nodes[_bb_end]->is_Proj(), "skipping projections after expected call" );
  2263       }
  2264       }
  2264     } else if( last->is_MachNullCheck() ) {
  2265     } else if( last->is_MachNullCheck() ) {