aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-06-04 09:28:22 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-06-04 09:28:22 +0000
commitc77bb6744644149d5a64b909db98671f57d92f83 (patch)
tree9383bdc62244de6efa7c5083cccf019a14cec420 /gcc
parent34a1d5c2c7ffd8f790da87f8e23180cf7d17b81b (diff)
downloadgcc-c77bb6744644149d5a64b909db98671f57d92f83.zip
gcc-c77bb6744644149d5a64b909db98671f57d92f83.tar.gz
gcc-c77bb6744644149d5a64b909db98671f57d92f83.tar.bz2
re PR tree-optimization/86038 (ICE in to_reg_br_prob_base, at profile-count.h:242)
2018-06-04 Richard Biener <rguenther@suse.de> PR tree-optimization/86038 * tracer.c (find_best_successor): Check probability for being initialized, bail out if not. * gcc.dg/pr86038.c: New testcase. From-SVN: r261142
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr86038.c12
-rw-r--r--gcc/tracer.c3
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e780766e..fde65eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-06-04 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/86038
+ * tracer.c (find_best_successor): Check probability for
+ being initialized, bail out if not.
+
2018-06-04 Richard Earnshaw <rearnsha@arm.com>
PR target/86003
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f889ebb..6ec5c50 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-04 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/86038
+ * gcc.dg/pr86038.c: New testcase.
+
2018-06-04 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/69615
diff --git a/gcc/testsuite/gcc.dg/pr86038.c b/gcc/testsuite/gcc.dg/pr86038.c
new file mode 100644
index 0000000..427a13f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr86038.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target pthread } */
+/* { dg-options "-O2 -ftracer -ftree-parallelize-loops=2 -fno-tree-scev-cprop --param parloops-schedule=dynamic" } */
+
+int
+sd (int lw)
+{
+ while (lw < 1)
+ ++lw;
+
+ return lw;
+}
diff --git a/gcc/tracer.c b/gcc/tracer.c
index 6181513..05300a2 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -159,7 +159,8 @@ find_best_successor (basic_block bb)
}
if (!best || ignore_bb_p (best->dest))
return NULL;
- if (best->probability.to_reg_br_prob_base () <= probability_cutoff)
+ if (!best->probability.initialized_p ()
+ || best->probability.to_reg_br_prob_base () <= probability_cutoff)
return NULL;
return best;
}