From 144a822fec6d680b2847f2bd35a6d6ebefd2d885 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Mon, 5 Mar 2018 12:49:07 +0000 Subject: [PATCH] re PR tree-optimization/84650 ([graphite] ICE: Segmentation fault (in create_new_iv)) 2018-03-05 Richard Biener PR tree-optimization/84650 * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache if executed in the loop pipeline. * gcc.dg/graphite/pr84650.c: New testcase. From-SVN: r258242 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/graphite/pr84650.c | 18 ++++++++++++++++++ gcc/tree-ssa-loop-im.c | 2 ++ 4 files changed, 31 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/graphite/pr84650.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd2c768..ba2a9c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-03-05 Richard Biener + + PR tree-optimization/84650 + * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache + if executed in the loop pipeline. + 2018-03-05 Sandra Loosemore * doc/configfiles.texi (Configuration Files): Move info about diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8e7e53b..48c40fa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-03-05 Richard Biener + + PR tree-optimization/84650 + * gcc.dg/graphite/pr84650.c: New testcase. + 2018-03-05 Paolo Carlini PR c++/82022 diff --git a/gcc/testsuite/gcc.dg/graphite/pr84650.c b/gcc/testsuite/gcc.dg/graphite/pr84650.c new file mode 100644 index 0000000..e59d161 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr84650.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fgraphite-identity -fno-tree-copy-prop --param lim-expensive=3" } */ + +unsigned int dj; + +void +np (void) +{ + const unsigned int uw = 2; + unsigned int eu; + + for (eu = 0; eu < uw; ++eu) + { + for (dj = 0; dj < uw; ++dj) + ; + eu -= !!(dj - uw - 1); + } +} diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 4655766..030aac0 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -2616,6 +2616,8 @@ pass_lim::execute (function *fun) if (!in_loop_pipeline) loop_optimizer_finalize (); + else + scev_reset (); return todo; } -- 2.7.4