diff options
author | Richard Henderson <rth@cygnus.com> | 2000-05-19 13:07:18 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-05-19 13:07:18 -0700 |
commit | b6cfd26443d6161c71b6069346cbe805f86774a4 (patch) | |
tree | 1279ef32590b83c555c5adb2aa805a92077c8cd9 /gcc/ifcvt.c | |
parent | 228c4d97ec5e44fcb923349fd1a76da0e83821a7 (diff) | |
download | gcc-b6cfd26443d6161c71b6069346cbe805f86774a4.tar.gz |
* ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
From-SVN: r34036
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 9 |
1 files changed, 6 insertions, 3 deletions
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; |