aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2019-04-01 21:05:08 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2019-04-01 21:05:08 +0300
commit4b52560099c1b744a0e639daea4805fe10fb3219 (patch)
tree6fb365fd3a34328afb00b2fd67c67e9f56cf9595
parent5ed22cbbfce94c6fca8e4247a74315aacb759918 (diff)
downloadgcc-4b52560099c1b744a0e639daea4805fe10fb3219.zip
gcc-4b52560099c1b744a0e639daea4805fe10fb3219.tar.gz
gcc-4b52560099c1b744a0e639daea4805fe10fb3219.tar.bz2
sel-sched: correct reset of reset_sched_cycles_p (PR 85412)
2019-04-01 Andrey Belevantsev <abel@ispras.ru> PR rtl-optimization/85412 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before sel_sched_region_1, not after. * gcc.dg/pr85412.c: New test. From-SVN: r270065
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/sel-sched.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr85412.c21
4 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9afd09b..7b745c6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-04-01 Andrey Belevantsev <abel@ispras.ru>
+ PR rtl-optimization/85412
+ * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
+ sel_sched_region_1, not after.
+
+2019-04-01 Andrey Belevantsev <abel@ispras.ru>
+
PR rtl-optimization/86928
* sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
compute_live if necessary.
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 338d7c0..552dd0b 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -7650,11 +7650,11 @@ sel_sched_region (int rgn)
/* Schedule always selecting the next insn to make the correct data
for bundling or other later passes. */
pipelining_p = false;
+ reset_sched_cycles_p = false;
force_next_insn = 1;
sel_sched_region_1 ();
force_next_insn = 0;
}
- reset_sched_cycles_p = pipelining_p;
sel_region_finish (reset_sched_cycles_p);
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 244ae87..39e3934 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-01 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/85412
+ * gcc.dg/pr85412.c: New test.
+
2019-04-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/62207
diff --git a/gcc/testsuite/gcc.dg/pr85412.c b/gcc/testsuite/gcc.dg/pr85412.c
new file mode 100644
index 0000000..11b8cec
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr85412.c
@@ -0,0 +1,21 @@
+/* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */
+/* { dg-require-effective-target int128 } */
+/* { dg-options "-O1 -fpeephole2 -fschedule-insns2 -fsel-sched-pipelining -fselective-scheduling2 -ftree-loop-if-convert -fno-if-conversion -fno-move-loop-invariants -fno-split-wide-types -fno-tree-dominator-opts" } */
+/* { dg-additional-options "-march=bonnell" { target x86_64-*-* } } */
+
+__int128 jv;
+
+void
+zm (__int128 g9, unsigned short int sm, short int hk)
+{
+ while (hk < 1)
+ {
+ if (jv == 0)
+ sm *= g9;
+
+ if (sm < jv)
+ hk = sm;
+
+ g9 |= sm == hk;
+ }
+}