aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2019-04-01 18:20:13 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2019-04-01 18:20:13 +0300
commita0802144bb4c0e60a110c6d5d8af22cb035da9c9 (patch)
tree6bc1c1dbaa74712ef725b19df870a997bdbc89b4 /gcc
parentca0f5734fe3daccfbd630628e4c11ebec230220d (diff)
downloadgcc-a0802144bb4c0e60a110c6d5d8af22cb035da9c9.zip
gcc-a0802144bb4c0e60a110c6d5d8af22cb035da9c9.tar.gz
gcc-a0802144bb4c0e60a110c6d5d8af22cb035da9c9.tar.bz2
sel-sched: remove assert in merge_fences (PR 87273)
2019-04-01 Andrey Belevantsev <abel@ispras.ru> PR rtl-optimization/87273 * sel-sched-ir.c (merge_fences): Remove assert. * gcc.dg/pr87273.c: New test. From-SVN: r270059
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sel-sched-ir.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr87273.c20
4 files changed, 30 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b0a73a..2f55f59 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-01 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/87273
+ * sel-sched-ir.c (merge_fences): Remove assert.
+
2019-04-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/46590
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index e8e508e..a658301 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -703,11 +703,6 @@ merge_fences (fence_t f, insn_t insn,
else
if (candidate->src == BLOCK_FOR_INSN (last_scheduled_insn))
{
- /* Would be weird if same insn is successor of several fallthrough
- edges. */
- gcc_assert (BLOCK_FOR_INSN (insn)->prev_bb
- != BLOCK_FOR_INSN (last_scheduled_insn_old));
-
state_free (FENCE_STATE (f));
FENCE_STATE (f) = state;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 15b32a2..6fd17464 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-01 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/87273
+ * gcc.dg/pr87273.c: New test.
+
2019-04-01 Martin Liska <mliska@suse.cz>
PR driver/89861
diff --git a/gcc/testsuite/gcc.dg/pr87273.c b/gcc/testsuite/gcc.dg/pr87273.c
new file mode 100644
index 0000000..43662f0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr87273.c
@@ -0,0 +1,20 @@
+/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
+/* { dg-options "-Os -fschedule-insns -fsel-sched-pipelining -fselective-scheduling -fno-ssa-phiopt -fno-tree-loop-im" } */
+/* { dg-additional-options "-march=core2" { target i?86-*-* x86_64-*-* } } */
+
+int sd;
+
+void
+w5 (int n4)
+{
+ long int *vq = (long int *) &n4;
+
+ while (n4 < 1)
+ {
+ int ks;
+
+ ks = !!(n4 + 1) ? ((++sd) == *vq) : 0;
+ if (ks == 1 / *vq)
+ *vq *= sd;
+ }
+}