diff options
author | Roman Zhuykov <zhroma@ispras.ru> | 2019-04-23 13:14:57 +0000 |
---|---|---|
committer | Roman Zhuykov <zhroma@gcc.gnu.org> | 2019-04-23 13:14:57 +0000 |
commit | 9fe3064bc60752a5252d88533cadb097ead5e05e (patch) | |
tree | f8000fbfdb7a7367fcbde29235c0f55ad62aab5b | |
parent | 8d64622fceaac7f27b6e7c35fca9f91236f34b8d (diff) | |
download | gcc-9fe3064bc60752a5252d88533cadb097ead5e05e.zip gcc-9fe3064bc60752a5252d88533cadb097ead5e05e.tar.gz gcc-9fe3064bc60752a5252d88533cadb097ead5e05e.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/modulo-sched.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr87979.c | 11 |
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f710946..5ea2fa0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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 * modulo-sched.c (ps_insn_find_column): Change condition so that branch will always be the last insn in a row inside partial diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index 44014a0..9954ea5 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -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) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 029bad5..9946c86 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 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 * gcc.dg/pr84032.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr87979.c b/gcc/testsuite/gcc.dg/pr87979.c new file mode 100644 index 0000000..d3d595f --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr87979.c @@ -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++; +} |