@@ -2701,17 +2701,7 @@ try_optimize_cfg (int mode)
&& (single_pred_edge (b)->flags & EDGE_FALLTHRU)
&& !(single_pred_edge (b)->flags & EDGE_COMPLEX)
&& LABEL_P (BB_HEAD (b))
- && !LABEL_PRESERVE_P (BB_HEAD (b))
- /* If the previous block ends with a branch to this
- block, we can't delete the label. Normally this
- is a condjump that is yet to be simplified, but
- if CASE_DROPS_THRU, this can be a tablejump with
- some element going to the same place as the
- default (fallthru). */
- && (single_pred (b) == ENTRY_BLOCK_PTR_FOR_FN (cfun)
- || !JUMP_P (BB_END (single_pred (b)))
- || ! label_is_jump_target_p (BB_HEAD (b),
- BB_END (single_pred (b)))))
+ && !LABEL_NUSES (BB_HEAD (b)))
{
delete_insn (BB_HEAD (b));
if (dump_file)