Only allow single exit phi for reduction in try_create_reduction_list

2016-01-10  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/69039
	* tree-parloops.c (try_create_reduction_list): Only allow single exit
	phi for reduction.

	* gcc.dg/autopar/pr69039.c: New test.

From-SVN: r232196
This commit is contained in:
Tom de Vries 2016-01-10 09:12:03 +00:00 committed by Tom de Vries
parent 34b85c6437
commit 23fab8aee7
4 changed files with 34 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-01-10 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69039
* tree-parloops.c (try_create_reduction_list): Only allow single exit
phi for reduction.
2016-01-09 John David Anglin <danglin@gcc.gnu.org>
PR middle-end/68743

View File

@ -1,3 +1,8 @@
2016-01-10 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69039
* gcc.dg/autopar/pr69039.c: New test.
2016-01-09 Marek Polacek <polacek@redhat.com>
PR c++/69113

View File

@ -0,0 +1,15 @@
/* { dg-do compile } */
/* { dg-options "-O2 -ftree-parallelize-loops=2" } */
unsigned int b;
unsigned int
fn1 (unsigned int d)
{
int i;
for (i = 0; i < 1000; i++)
b |= d;
return b;
}

View File

@ -2595,6 +2595,14 @@ try_create_reduction_list (loop_p loop,
" FAILED: it is not a part of reduction.\n");
return false;
}
if (red->keep_res != NULL)
{
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file,
" FAILED: reduction has multiple exit phis.\n");
return false;
}
red->keep_res = phi;
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "reduction phi is ");