+Mon Jul 23 17:20:18 CEST 2001 Jan Hubicka <jh@suse.cz>
+
+ * flow.c (try_simplify_condjump): Unlink insn chain on
+ fallthru edge; use can_fallthru.
+
Mon Jul 23 16:03:19 CEST 2001 Jan Hubicka <jh@suse.cz>
* basic-block.h (find_sub_basic_block): Declare.
/* The conditional branch must target the block after the
unconditional branch. */
cbranch_dest_block = cbranch_jump_edge->dest;
- if (cbranch_dest_block->index != jump_block->index + 1)
+
+ if (!can_fallthru (jump_block, cbranch_dest_block))
return false;
/* Invert the conditional branch. Prevent jump.c from deleting
cbranch_fallthru_edge->flags &= ~EDGE_FALLTHRU;
flow_delete_block (jump_block);
+ /* Selectively unlink the sequence. */
+ if (cbranch_jump_edge->src->end != PREV_INSN (cbranch_jump_edge->dest->head))
+ flow_delete_insn_chain (NEXT_INSN (cbranch_jump_edge->src->end),
+ PREV_INSN (cbranch_jump_edge->dest->head));
return true;
}