aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-04-26 01:40:11 +0000
committerRichard Henderson <rth@cygnus.com>2000-04-26 01:40:11 +0000
commit527b46018d4dc6ac7fbe9785332c6d77cdd51726 (patch)
tree8a4987f07292227fd7a06ffa55f4e7eaf72296c9
parent19c492ae4ea8e1637078ef475ce94c36fd0d461e (diff)
* condexec.c (find_if_case_2): Don't die if then_bb is EXIT.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/condexec-branch@33437 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.CE2
-rw-r--r--gcc/condexec.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ChangeLog.CE b/gcc/ChangeLog.CE
index d3f6588bf7e..baa92bd3278 100644
--- a/gcc/ChangeLog.CE
+++ b/gcc/ChangeLog.CE
@@ -2,6 +2,8 @@
* condexec.c (noce_try_cmove_arith): Also fail if no insn_a.
+ * condexec.c (find_if_case_2): Don't die if then_bb is EXIT.
+
2000-04-25 Richard Henderson <rth@cygnus.com>
* condexec.c (noce_process_if_block): Reject insn_b from test_bb
diff --git a/gcc/condexec.c b/gcc/condexec.c
index d3aeabcd0ea..78984448a6d 100644
--- a/gcc/condexec.c
+++ b/gcc/condexec.c
@@ -1550,8 +1550,9 @@ find_if_case_2 (test_bb, then_edge, else_edge)
if (note && INTVAL (XEXP (note, 0)) >= REG_BR_PROB_BASE / 2)
;
else if (else_succ->dest->index < 0
- || TEST_BIT (post_dominators[ORIG_INDEX (then_bb)],
- ORIG_INDEX (else_succ->dest)))
+ || (then_bb->index >= 0
+ && TEST_BIT (post_dominators[ORIG_INDEX (then_bb)],
+ ORIG_INDEX (else_succ->dest))))
;
else
return FALSE;