summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/sched-rgn.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e0ddef9f8ae..616db86615a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-05-03 Teresa Johnson <tejohnson@google.com>
+
+ PR bootstrap/57154
+ * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
+ do not exceed REG_BR_PROB_BASE.
+
2013-05-03 Jeff Law <law@redhat.com>
PR tree-optimization/57144
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 3f5b4ba178b..2c971e2a999 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -1442,6 +1442,12 @@ compute_dom_prob_ps (int bb)
bitmap_set_bit (pot_split[bb], EDGE_TO_BIT (out_edge));
prob[bb] += combine_probabilities (prob[pred_bb], in_edge->probability);
+ // The rounding divide in combine_probabilities can result in an extra
+ // probability increment propagating along 50-50 edges. Eventually when
+ // the edges re-merge, the accumulated probability can go slightly above
+ // REG_BR_PROB_BASE.
+ if (prob[bb] > REG_BR_PROB_BASE)
+ prob[bb] = REG_BR_PROB_BASE;
}
bitmap_set_bit (dom[bb], bb);
OpenPOWER on IntegriCloud