Commit b75f28e1 by Richard Biener Committed by Richard Biener

re PR tree-optimization/60382 (ICE on valid code at -O3 on x86_64-linux-gnu (in…

re PR tree-optimization/60382 (ICE on valid code at -O3 on x86_64-linux-gnu (in vect_create_epilog_for_reduction, at tree-vect-loop.c:4352))

2014-03-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60382
	* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
	dead PHIs a reduction.

	* gcc.dg/vect/pr60382.c: New testcase.

From-SVN: r208305
parent 03aac9ce
2014-03-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/60382
* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
dead PHIs a reduction.
2014-03-03 Uros Bizjak <ubizjak@gmail.com>
* config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
......
2014-03-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/60382
* gcc.dg/vect/pr60382.c: New testcase.
2014-03-03 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60148
......
#include "tree-vect.h"
int a, b, c, e, f;
void
foo ()
{
for (b = 0; b < 3; b++)
if (e)
{
for (c = 0; c < 4; c++)
{
if (b)
continue;
f = 1;
for (a = 0; a < 2; a++)
f |= 1;
}
for (;;)
;
}
}
int
main ()
{
check_vect ();
foo ();
return 0;
}
/* { dg-final { cleanup-tree-dump "vect" } } */
......@@ -2193,6 +2193,12 @@ vect_is_simple_reduction_1 (loop_vec_info loop_info, gimple phi,
|| (!check_reduction && flow_loop_nested_p (vect_loop, loop)));
name = PHI_RESULT (phi);
/* ??? If there are no uses of the PHI result the inner loop reduction
won't be detected as possibly double-reduction by vectorizable_reduction
because that tries to walk the PHI arg from the preheader edge which
can be constant. See PR60382. */
if (has_zero_uses (name))
return NULL;
nloop_uses = 0;
FOR_EACH_IMM_USE_FAST (use_p, imm_iter, name)
{
......
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