re PR rtl-optimization/63384 (scheduler loops on endless fence list with -fselective...
authorAndrey Belevantsev <abel@ispras.ru>
Tue, 15 Mar 2016 15:25:41 +0000 (18:25 +0300)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Tue, 15 Mar 2016 15:25:41 +0000 (18:25 +0300)
gcc/

PR rtl-optimization/63384
* sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more
on DEBUG_INSN_P insns.

testsuite/

PR rtl-optimization/63384
* g++.dg/pr63384.C: New test.

From-SVN: r234217

gcc/ChangeLog
gcc/sel-sched.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr63384.C [new file with mode: 0644]

index f22fed4bd0f7fd0277435ad75fdef4e51c2cab6b..ac70e8ac8d9253ed6d9e325228811abc7e958b81 100644 (file)
@@ -1,3 +1,9 @@
+2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/63384
+       * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
+       DEBUG_INSN_P insns. 
+
 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
 
        PR target/64411
index 09cf0284603819fbdf06ef2a125670518ef47442..b795aea0ac240e6584f78c3fa1bf4b2a80f62b8f 100644 (file)
@@ -4262,8 +4262,9 @@ invoke_aftermath_hooks (fence_t fence, rtx_insn *best_insn, int issue_more)
                                       issue_more);
       memcpy (FENCE_STATE (fence), curr_state, dfa_state_size);
     }
-  else if (GET_CODE (PATTERN (best_insn)) != USE
-           && GET_CODE (PATTERN (best_insn)) != CLOBBER)
+  else if (!DEBUG_INSN_P (best_insn)
+          && GET_CODE (PATTERN (best_insn)) != USE
+          && GET_CODE (PATTERN (best_insn)) != CLOBBER)
     issue_more--;
 
   return issue_more;
index 7b5fa632e1ffa97c0f91e84f43cbfe7ad769f16a..9259910cb5e3a71742b44e6c92604a6e3b693b73 100644 (file)
@@ -1,3 +1,8 @@
+2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/63384
+       * g++.dg/pr63384.C: New test. 
+
 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
 
        PR target/64411
diff --git a/gcc/testsuite/g++.dg/pr63384.C b/gcc/testsuite/g++.dg/pr63384.C
new file mode 100644 (file)
index 0000000..b4e0784
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining  -fsel-sched-pipelining-outer-loops -fsel-sched-reschedule-pipelined -fvar-tracking-assignments-toggle -ftree-vectorize" } */
+
+template <class T> T **make_test_matrix() {
+ T **data = new T *;
+ for (int i = 0; i < 1000; i++)
+    ;
+}
+
+template <typename T> void test() { T **c = make_test_matrix<T>(); }
+
+main() { test<float>(); }