diff options
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/predict.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bac2003..6f8967f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-01-07 Jakub Jelinek <jakub@redhat.com> + * predict.c (combine_predictions_for_insn): Avoid division by zero. + +2002-01-07 Jakub Jelinek <jakub@redhat.com> + * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT. Don't allow -1 - x -> ~x simplifications in the first pass. diff --git a/gcc/predict.c b/gcc/predict.c index 71da61a..c35837e 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -253,8 +253,12 @@ combine_predictions_for_insn (insn, bb) * (REG_BR_PROB_BASE - probability)); /* Use FP math to avoid overflows of 32bit integers. */ - combined_probability = (((double) combined_probability) * probability - * REG_BR_PROB_BASE / d + 0.5); + if (d == 0) + /* If one probability is 0% and one 100%, avoid division by zero. */ + combined_probability = REG_BR_PROB_BASE / 2; + else + combined_probability = (((double) combined_probability) * probability + * REG_BR_PROB_BASE / d + 0.5); } /* Decide which heuristic to use. In case we didn't match anything, |
