re PR tree-optimization/58010 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:4378)

2013-08-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58010
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
	assert that we have a loop-closed PHI.

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

From-SVN: r202095
This commit is contained in:
Richard Biener 2013-08-30 07:47:54 +00:00 committed by Richard Biener
parent 82e9d6426c
commit 7a764c608a
4 changed files with 28 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2013-08-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/58010
* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
assert that we have a loop-closed PHI.
2013-08-29 Jan Hubicka <jh@suse.cz>
* lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.

View File

@ -1,3 +1,8 @@
2013-08-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/58010
* gcc.dg/pr58010.c: New testcase.
2013-08-29 Xinliang DavidLi <davidxl@google.com>
* gcc.dg/unroll_3.c: Message change.

View File

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-options "-O2 -funswitch-loops -ftree-vectorize" } */
short a, b, c, d;
void f(void)
{
short e;
for(; e; e++)
for(; b; b++);
for(d = 0; d < 4; d++)
a ^= (e ^= 1) || c ? : e;
}

View File

@ -4373,9 +4373,8 @@ vect_finalize_reduction:
if (!flow_bb_inside_loop_p (loop, gimple_bb (USE_STMT (use_p))))
phis.safe_push (USE_STMT (use_p));
/* We expect to have found an exit_phi because of loop-closed-ssa
form. */
gcc_assert (!phis.is_empty ());
/* While we expect to have found an exit_phi because of loop-closed-ssa
form we can end up without one if the scalar cycle is dead. */
FOR_EACH_VEC_ELT (phis, i, exit_phi)
{