backport: re PR tree-optimization/59164 (ice: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_cst’ in get_var_info, at tree-into-ssa.c:380)

2014-05-07  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2013-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59164
	* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
	check whether we can create an epilogue loop to reflect the
	cases where we create one.

	* gcc.dg/torture/pr59164.c: New testcase.

From-SVN: r210154
This commit is contained in:
Richard Biener 2014-05-07 11:51:36 +00:00 committed by Richard Biener
parent a0c51dc96b
commit 338b4a6f09
4 changed files with 40 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2014-05-07 Richard Biener <rguenther@suse.de>
Backport from mainline
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/59164
* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
check whether we can create an epilogue loop to reflect the
cases where we create one.
2014-05-07 Richard Biener <rguenther@suse.de>
Backport from mainline

View File

@ -1,3 +1,11 @@
2014-05-07 Richard Biener <rguenther@suse.de>
Backport from mainline
2013-11-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/59164
* gcc.dg/torture/pr59164.c: New testcase.
2014-05-07 Richard Biener <rguenther@suse.de>
Backport from mainline

View File

@ -0,0 +1,21 @@
/* { dg-do compile } */
int a, d, e;
long b[10];
int c[10][8];
int fn1(p1)
{
return 1 >> p1;
}
void fn2(void)
{
int f;
for (a=1; a <= 4; a++)
{
f = fn1(0 < c[a][0]);
if (f || d)
e = b[a] = 1;
}
}

View File

@ -1466,7 +1466,7 @@ vect_analyze_loop_operations (loop_vec_info loop_vinfo, bool slp)
if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
|| LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0
|| LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo))
|| LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo))
{
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "epilog loop required.");