aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-03-20 15:14:17 +0100
committerMartin Liska <marxin@gcc.gnu.org>2018-03-20 14:14:17 +0000
commit14b05bee0ccd7a6a9d7c6d498121caa4d6f9e23d (patch)
treea7bac11c79f2261dfae19a1439fdb57878560fbe
parent7e86e0a3a1a8f923e2fb7badfe5714bc239710af (diff)
downloadgcc-14b05bee0ccd7a6a9d7c6d498121caa4d6f9e23d.zip
gcc-14b05bee0ccd7a6a9d7c6d498121caa4d6f9e23d.tar.gz
gcc-14b05bee0ccd7a6a9d7c6d498121caa4d6f9e23d.tar.bz2
Handle -fno-guess-branch-probability properly in predict.c (PR ipa/84825).
2018-03-20 Martin Liska <mliska@suse.cz> PR ipa/84825 * predict.c (rebuild_frequencies): Handle case when we have PROFILE_ABSENT, but flag_guess_branch_prob is false. 2018-03-20 Martin Liska <mliska@suse.cz> PR ipa/84825 * g++.dg/ipa/pr84825.C: New test. From-SVN: r258683
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/predict.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr84825.C18
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a7ebc9..f47c192 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-20 Martin Liska <mliska@suse.cz>
+
+ PR ipa/84825
+ * predict.c (rebuild_frequencies): Handle case when we have
+ PROFILE_ABSENT, but flag_guess_branch_prob is false.
+
2018-03-20 Jakub Jelinek <jakub@redhat.com>
PR target/84990
diff --git a/gcc/predict.c b/gcc/predict.c
index b40dec4..019ff9e 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -3998,6 +3998,9 @@ rebuild_frequencies (void)
}
else if (profile_status_for_fn (cfun) == PROFILE_READ)
update_max_bb_count ();
+ else if (profile_status_for_fn (cfun) == PROFILE_ABSENT
+ && !flag_guess_branch_prob)
+ ;
else
gcc_unreachable ();
timevar_pop (TV_REBUILD_FREQUENCIES);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a59f09a..6c918c0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2018-03-20 Martin Liska <mliska@suse.cz>
+ PR ipa/84825
+ * g++.dg/ipa/pr84825.C: New test.
+
+2018-03-20 Martin Liska <mliska@suse.cz>
+
* gcc.dg/lto/chkp-ctor-merge_0.c: Remove.
2018-03-20 Jakub Jelinek <jakub@redhat.com>
diff --git a/gcc/testsuite/g++.dg/ipa/pr84825.C b/gcc/testsuite/g++.dg/ipa/pr84825.C
new file mode 100644
index 0000000..7ae854e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/pr84825.C
@@ -0,0 +1,18 @@
+/* PR ipa/84658 */
+/* { dg-options "-O3 --param early-inlining-insns=0 -fno-guess-branch-probability" } */
+
+struct a;
+struct b;
+struct c {
+ virtual a *d(b *);
+};
+struct a {
+ virtual a e();
+};
+struct f {
+ virtual ~f();
+};
+struct g : f, a {};
+struct b : c, virtual g {
+ b *d(b *h) { return h; }
+} i;