From: Josef Zlomek Date: Thu, 13 Feb 2003 18:32:17 +0000 (+0100) Subject: cfgcleanup.c (outgoing_edges_match): When there is single outgoing edge and block... X-Git-Tag: releases/gcc-3.2.3~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c08c0cf8a524f9ace539bd226dd44c8bd4a870ce;p=thirdparty%2Fgcc.git cfgcleanup.c (outgoing_edges_match): When there is single outgoing edge and block ends with a jump insn it must be... * cfgcleanup.c (outgoing_edges_match): When there is single outgoing edge and block ends with a jump insn it must be simple jump. From-SVN: r62860 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 321867c047dd..0ad26a0c287b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-02-13 Josef Zlomek + + * cfgcleanup.c (outgoing_edges_match): When there is single outgoing + edge and block ends with a jump insn it must be simple jump. + 2003-02-12 John David Anglin PR9275 and PR8694 diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 9589d1f6a43f..4cadfe81cdc2 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -1078,9 +1078,11 @@ outgoing_edges_match (mode, bb1, bb2) /* If BB1 has only one successor, we may be looking at either an unconditional jump, or a fake edge to exit. */ if (bb1->succ && !bb1->succ->succ_next - && !(bb1->succ->flags & (EDGE_COMPLEX | EDGE_FAKE))) + && (bb1->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0 + && (GET_CODE (bb1->end) != JUMP_INSN || simplejump_p (bb1->end))) return (bb2->succ && !bb2->succ->succ_next - && (bb2->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0); + && (bb2->succ->flags & (EDGE_COMPLEX | EDGE_FAKE)) == 0 + && (GET_CODE (bb2->end) != JUMP_INSN || simplejump_p (bb2->end))); /* Match conditional jumps - this may get tricky when fallthru and branch edges are crossed. */