summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-03 16:48:24 +0000
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-03 16:48:24 +0000
commitdf21e330c20ce81560071e4561691302df264796 (patch)
tree89e12c60929c3e92a4552c8cf753f89bea5e4805
parent66c357ba8bb0313bb9f33572d978bb419a475df9 (diff)
downloadppe42-gcc-df21e330c20ce81560071e4561691302df264796.tar.gz
ppe42-gcc-df21e330c20ce81560071e4561691302df264796.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198584 138bc75d-0d04-0410-961f-82ee72b054a4
-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