Commit 81fa2944 by Andrey Belevantsev Committed by Andrey Belevantsev

re PR rtl-optimization/63384 (scheduler loops on endless fence list with…

re PR rtl-optimization/63384 (scheduler loops on endless fence list with -fselective-scheduling2 on x86)

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
parent 74ea9ab6
2016-03-15 Andrey Belevantsev <abel@ispras.ru> 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 PR target/64411
* sched-deps.c (get_implicit_reg_pending_clobbers): New function, * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
factored out from ... factored out from ...
......
...@@ -4262,8 +4262,9 @@ invoke_aftermath_hooks (fence_t fence, rtx_insn *best_insn, int issue_more) ...@@ -4262,8 +4262,9 @@ invoke_aftermath_hooks (fence_t fence, rtx_insn *best_insn, int issue_more)
issue_more); issue_more);
memcpy (FENCE_STATE (fence), curr_state, dfa_state_size); memcpy (FENCE_STATE (fence), curr_state, dfa_state_size);
} }
else if (GET_CODE (PATTERN (best_insn)) != USE else if (!DEBUG_INSN_P (best_insn)
&& GET_CODE (PATTERN (best_insn)) != CLOBBER) && GET_CODE (PATTERN (best_insn)) != USE
&& GET_CODE (PATTERN (best_insn)) != CLOBBER)
issue_more--; issue_more--;
return issue_more; return issue_more;
......
2016-03-15 Andrey Belevantsev <abel@ispras.ru> 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 PR target/64411
* gcc.target/i386/pr64411.C: New test. * gcc.target/i386/pr64411.C: New test.
......
/* { 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>(); }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment