Always call free_stmt_vec_info_vec in gather_scalar_reductions
2015-11-23 Tom de Vries <tom@codesourcery.com> PR tree-optimization/68460 * tree-parloops.c (gather_scalar_reductions): Also call free_stmt_vec_info_vec if simple_loop_info == NULL. * gcc.dg/autopar/pr68460.c: New test. From-SVN: r230742
This commit is contained in:
parent
b59e2a4903
commit
1cabb20439
@ -1,3 +1,9 @@
|
||||
2015-11-23 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR tree-optimization/68460
|
||||
* tree-parloops.c (gather_scalar_reductions): Also call
|
||||
free_stmt_vec_info_vec if simple_loop_info == NULL.
|
||||
|
||||
2015-11-23 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
|
||||
|
||||
* opts.c (finish_options): Allow -fsanitize-recover=address for
|
||||
|
@ -1,3 +1,8 @@
|
||||
2015-11-23 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR tree-optimization/68460
|
||||
* gcc.dg/autopar/pr68460.c: New test.
|
||||
|
||||
2015-11-23 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
|
||||
|
||||
* c-c++-common/asan/halt_on_error-1.c: New test.
|
||||
|
35
gcc/testsuite/gcc.dg/autopar/pr68460.c
Normal file
35
gcc/testsuite/gcc.dg/autopar/pr68460.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* { dg-do "compile" } */
|
||||
/* { dg-options "-O -ftree-parallelize-loops=2 -ftree-vectorize -fno-tree-ch -fno-tree-dominator-opts" } */
|
||||
|
||||
void abort (void);
|
||||
|
||||
int d[1024], e[1024];
|
||||
|
||||
int
|
||||
foo (void)
|
||||
{
|
||||
int s = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 1024; i++)
|
||||
s += d[i] - e[i];
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 1024; i++)
|
||||
{
|
||||
d[i] = i * 2;
|
||||
e[i] = i;
|
||||
}
|
||||
|
||||
if (foo () != 1023 * 1024 / 2)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
@ -2433,7 +2433,7 @@ gather_scalar_reductions (loop_p loop, reduction_info_table_type *reduction_list
|
||||
|
||||
simple_loop_info = vect_analyze_loop_form (loop);
|
||||
if (simple_loop_info == NULL)
|
||||
return;
|
||||
goto gather_done;
|
||||
|
||||
for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
|
||||
{
|
||||
@ -2492,9 +2492,13 @@ gather_scalar_reductions (loop_p loop, reduction_info_table_type *reduction_list
|
||||
destroy_loop_vec_info (simple_loop_info, true);
|
||||
destroy_loop_vec_info (simple_inner_loop_info, true);
|
||||
|
||||
gather_done:
|
||||
/* Release the claim on gimple_uid. */
|
||||
free_stmt_vec_info_vec ();
|
||||
|
||||
if (reduction_list->elements () == 0)
|
||||
return;
|
||||
|
||||
/* As gimple_uid is used by the vectorizer in between vect_analyze_loop_form
|
||||
and free_stmt_vec_info_vec, we can set gimple_uid of reduc_phi stmts only
|
||||
now. */
|
||||
|
Loading…
Reference in New Issue
Block a user