Commit 8d64622f by Roman Zhuykov

modulo-sched: fix branch scheduling issue (PR84032)

	PR rtl-optimization/84032
	* modulo-sched.c (ps_insn_find_column): Change condition so that
	branch will always be the last insn in a row inside partial
	schedule.

testsuite:

	PR rtl-optimization/84032
	* gcc.dg/pr84032.c: New test.

From-SVN: r270511
parent 038bc9bf
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/84032
* modulo-sched.c (ps_insn_find_column): Change condition so that
branch will always be the last insn in a row inside partial
schedule.
2019-04-23 Richard Biener <rguenther@suse.de> 2019-04-23 Richard Biener <rguenther@suse.de>
PR debug/90131 PR debug/90131
......
...@@ -2996,9 +2996,7 @@ ps_insn_find_column (partial_schedule_ptr ps, ps_insn_ptr ps_i, ...@@ -2996,9 +2996,7 @@ ps_insn_find_column (partial_schedule_ptr ps, ps_insn_ptr ps_i,
last_must_precede = next_ps_i; last_must_precede = next_ps_i;
} }
/* The closing branch must be the last in the row. */ /* The closing branch must be the last in the row. */
if (must_precede if (JUMP_P (ps_rtl_insn (ps, next_ps_i->id)))
&& bitmap_bit_p (must_precede, next_ps_i->id)
&& JUMP_P (ps_rtl_insn (ps, next_ps_i->id)))
return false; return false;
last_in_row = next_ps_i; last_in_row = next_ps_i;
......
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/84032
* gcc.dg/pr84032.c: New test.
2018-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> 2018-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
PR tree-optimization/90078 PR tree-optimization/90078
* gcc/testsuite/g++.dg/tree-ssa/pr90078.C: New test. * g++.dg/tree-ssa/pr90078.C: New test.
2018-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> 2018-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
PR tree-optimization/90021 PR tree-optimization/90021
* gcc/testsuite/gfortran.dg/pr90021.f90: New test. * gfortran.dg/pr90021.f90: New test.
2019-04-22 Steven G. Kargl <kargl@gcc.gnu.org> 2019-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
......
/* PR rtl-optimization/84032 */
/* { dg-do compile } */
/* { dg-options "-O1 -fmodulo-sched" } */
/* { dg-additional-options "-mcpu=power6" { target { powerpc-*-* } } } */
void
yr (int cm)
{
int ka = cm;
for (;;)
{
short int m0;
for (m0 = 0; m0 < 6; ++m0)
{
ka &= 1;
cm *= 2;
}
ka = (ka == 0) ? cm : 0;
}
}
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