< prev index next >

src/hotspot/share/opto/output.cpp

Print this page

        

*** 2410,2422 **** last->as_Mach()->ideal_Opcode() == Op_Con) { last = bb->get_node(--_bb_end); } assert(!last->is_Mach() || last->as_Mach()->ideal_Opcode() != Op_Con, ""); if( last->is_Catch() || ! (last->is_Mach() && last->as_Mach()->ideal_Opcode() == Op_Halt) ) { ! // There might be a prior call. Skip it. ! while (_bb_start < _bb_end && bb->get_node(--_bb_end)->is_MachProj()); } else if( last->is_MachNullCheck() ) { // Backup so the last null-checked memory instruction is // outside the schedulable range. Skip over the nullcheck, // projection, and the memory nodes. Node *mem = last->in(1); --- 2410,2425 ---- last->as_Mach()->ideal_Opcode() == Op_Con) { last = bb->get_node(--_bb_end); } assert(!last->is_Mach() || last->as_Mach()->ideal_Opcode() != Op_Con, ""); if( last->is_Catch() || ! // Exclude unreachable path case when Halt node is in a separate block. ! (_bb_end > 1 && last->is_Mach() && last->as_Mach()->ideal_Opcode() == Op_Halt) ) { ! // There must be a prior call. Skip it. ! while( !bb->get_node(--_bb_end)->is_MachCall() ) { ! assert( bb->get_node(_bb_end)->is_MachProj(), "skipping projections after expected call" ); ! } } else if( last->is_MachNullCheck() ) { // Backup so the last null-checked memory instruction is // outside the schedulable range. Skip over the nullcheck, // projection, and the memory nodes. Node *mem = last->in(1);
< prev index next >