Commit ad5d161a by Richard Guenther Committed by Richard Biener

re PR middle-end/52701 (416.gamess in SPEC CPU 2006 failed to build)

2012-03-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52701
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
	compute and set the evolution part of PHI nodes.

	* gfortran.dg/pr52701.f90: New testcase.

From-SVN: r185800
parent 5467ee52
2012-03-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52701
* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
compute and set the evolution part of PHI nodes.
2012-03-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52721
* tree-vect-stmts.c (vect_init_vector): Handle scalars.
......
2012-03-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52701
* gfortran.dg/pr52701.f90: New testcase.
2012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52686
......
! { dg-do compile }
! { dg-options "-O3" }
function pr52701 (x, z, e, f, g, l)
integer a, b, c, d, e, f, g, i, j, l, pr52701
double precision x(e), z(e*e)
do i = l, f
do j = l, i
d = 0
do a = 1, g
c = a - g
do b = 1, g
d = d + 1
c = c + g
z(d) = z(d) / (x(i) + x(j) - x(f + a) - x(f + b))
end do
end do
end do
end do
pr52701 = c
end
......@@ -565,11 +565,15 @@ vect_analyze_scalar_cycles_1 (loop_vec_info loop_vinfo, struct loop *loop)
/* Analyze the evolution function. */
access_fn = analyze_scalar_evolution (loop, def);
if (access_fn)
STRIP_NOPS (access_fn);
if (access_fn && vect_print_dump_info (REPORT_DETAILS))
{
fprintf (vect_dump, "Access function of PHI: ");
print_generic_expr (vect_dump, access_fn, TDF_SLIM);
STRIP_NOPS (access_fn);
if (vect_print_dump_info (REPORT_DETAILS))
{
fprintf (vect_dump, "Access function of PHI: ");
print_generic_expr (vect_dump, access_fn, TDF_SLIM);
}
STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo)
= evolution_part_in_loop_num (access_fn, loop->num);
}
if (!access_fn
......@@ -579,8 +583,6 @@ vect_analyze_scalar_cycles_1 (loop_vec_info loop_vinfo, struct loop *loop)
continue;
}
STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo)
= evolution_part_in_loop_num (access_fn, loop->num);
gcc_assert (STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo) != NULL_TREE);
if (vect_print_dump_info (REPORT_DETAILS))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment