From: Richard Henderson Date: Fri, 19 May 2000 20:07:18 +0000 (-0700) Subject: * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b6cfd26443d6161c71b6069346cbe805f86774a4;p=gcc.git * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. From-SVN: r34036 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8c6c95a681..5e4fc881432 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2000-05-19 Richard Henderson + * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. + * flow.c (make_edges): The sibling call edge to exit is abnormal. 2000-05-19 Richard Henderson diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 24036513b65..371e5609353 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1652,14 +1652,17 @@ find_if_case_2 (test_bb, then_edge, else_edge) if (else_bb->pred->pred_next != NULL) return FALSE; + /* THEN is not EXIT. */ + if (then_bb->index < 0) + return FALSE; + /* ELSE is predicted or SUCC(ELSE) postdominates THEN. */ note = find_reg_note (test_bb->end, REG_BR_PROB, NULL_RTX); if (note && INTVAL (XEXP (note, 0)) >= REG_BR_PROB_BASE / 2) ; else if (else_succ->dest->index < 0 - || (then_bb->index >= 0 - && TEST_BIT (post_dominators[ORIG_INDEX (then_bb)], - ORIG_INDEX (else_succ->dest)))) + || TEST_BIT (post_dominators[ORIG_INDEX (then_bb)], + ORIG_INDEX (else_succ->dest))) ; else return FALSE;