re PR tree-optimization/83089 (ICE: Segmentation fault (in instantiate_scev_name))

2017-11-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83089
	* tree-if-conv.c (pass_if_conversion::execute): If anything
	changed reset SCEV and free the number of iteration estimates.

	* gcc.dg/pr83089.c: New testcase.

From-SVN: r255044
This commit is contained in:
Richard Biener 2017-11-22 08:47:47 +00:00 committed by Richard Biener
parent ce143aa6e3
commit 8f8e53262b
4 changed files with 44 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-11-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/83089
* tree-if-conv.c (pass_if_conversion::execute): If anything
changed reset SCEV and free the number of iteration estimates.
2017-11-21 Martin Sebor <msebor@redhat.com>
PR tree-optimization/82945

View File

@ -1,3 +1,8 @@
2017-11-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/83089
* gcc.dg/pr83089.c: New testcase.
2017-11-21 David Malcolm <dmalcolm@redhat.com>
PR c/83056

View File

@ -0,0 +1,27 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-loop-if-convert -ftree-parallelize-loops=2" } */
int rl, s8;
void
it (int zy, short int el)
{
int hb;
while (el != 0)
{
hb = el;
for (rl = 0; rl < 200; ++rl)
{
for (s8 = 0; s8 < 2; ++s8)
{
}
if (s8 < 3)
zy = hb;
if (hb == 0)
++s8;
zy += (s8 != -1);
}
el = zy;
}
}

View File

@ -2959,6 +2959,12 @@ pass_if_conversion::execute (function *fun)
&& !loop->dont_vectorize))
todo |= tree_if_conversion (loop);
if (todo)
{
free_numbers_of_iterations_estimates (fun);
scev_reset ();
}
if (flag_checking)
{
basic_block bb;