modulo-sched: prevent division by zero (PR87979)

PR rtl-optimization/87979
	* modulo-sched.c (sms_schedule): Start ii value "mii" should
	not equal zero.

testsuite:

	PR rtl-optimization/87979
	* gcc.dg/pr87979.c: New test.

From-SVN: r270512
This commit is contained in:
Roman Zhuykov 2019-04-23 13:14:57 +00:00 committed by Roman Zhuykov
parent 8d64622fce
commit 9fe3064bc6
4 changed files with 23 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/87979
* modulo-sched.c (sms_schedule): Start ii value "mii" should
not equal zero.
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/84032

View file

@ -1597,6 +1597,7 @@ sms_schedule (void)
mii = 1; /* Need to pass some estimate of mii. */
rec_mii = sms_order_nodes (g, mii, node_order, &max_asap);
mii = MAX (res_MII (g), rec_mii);
mii = MAX (mii, 1);
maxii = MAX (max_asap, MAXII_FACTOR * mii);
if (dump_file)

View file

@ -1,3 +1,8 @@
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/87979
* gcc.dg/pr87979.c: New test.
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
PR rtl-optimization/84032

View file

@ -0,0 +1,11 @@
/* PR rtl-optimization/87979 */
/* { dg-do compile } */
/* { dg-options "-Os -fmodulo-sched -fno-tree-loop-im" } */
/* { dg-additional-options "-march=z196" { target { s390*-*-* } } } */
void foo(void)
{
static int m;
for (int i = 0; i < 10; ++i)
m++;
}