summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-01-07 22:15:12 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2002-01-07 22:15:12 +0100
commit571a03b876a6b4b7db3fb2051f0b50f58ecd3a91 (patch)
tree3d8f82c5ac3ab5424c7e563aa3d650605ea6f0e7
parent2e9513841e7b1614d5bcde97e7af166481728296 (diff)
downloadgcc-571a03b876a6b4b7db3fb2051f0b50f58ecd3a91.tar.gz
* predict.c (combine_predictions_for_insn): Avoid division by zero.
From-SVN: r48615
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/predict.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bac2003e3ea..6f8967fe617 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 71da61a7c17..c35837ed2b7 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,