From: Marek Polacek Date: Mon, 17 Mar 2014 14:15:51 +0000 (+0000) Subject: re PR middle-end/60534 (ICE: in expand_GOMP_SIMD_VF, at internal-fn.c:142 with -fopen... X-Git-Tag: upstream/12.2.0~64244 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ab2ffbeb332afb09e6603e3a8a96e5d7f1f3e3c6;p=platform%2Fupstream%2Fgcc.git re PR middle-end/60534 (ICE: in expand_GOMP_SIMD_VF, at internal-fn.c:142 with -fopenmp -O -fno-tree-loop-optimize and #pragma omp simd reduction) PR middle-end/60534 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same as -fno-tree-loop-vectorize. (expand_omp_simd): Likewise. testsuite/ * gcc.dg/gomp/pr60534.c: New test. From-SVN: r208616 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7d0ca2d..b7c5578 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-03-17 Marek Polacek + + PR middle-end/60534 + * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same + as -fno-tree-loop-vectorize. + (expand_omp_simd): Likewise. + 2014-03-15 Eric Botcazou * config/sparc/sparc-protos.h (tls_call_delay): Delete. diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 91c8656..24ef3c8 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -2929,6 +2929,7 @@ omp_max_vf (void) { if (!optimize || optimize_debug + || !flag_tree_loop_optimize || (!flag_tree_loop_vectorize && (global_options_set.x_flag_tree_loop_vectorize || global_options_set.x_flag_tree_vectorize))) @@ -6839,6 +6840,7 @@ expand_omp_simd (struct omp_region *region, struct omp_for_data *fd) if ((flag_tree_loop_vectorize || (!global_options_set.x_flag_tree_loop_vectorize && !global_options_set.x_flag_tree_vectorize)) + && flag_tree_loop_optimize && loop->safelen > 1) { loop->force_vect = true; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3769c7f..063680e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-17 Marek Polacek + + PR middle-end/60534 + * gcc.dg/gomp/pr60534.c: New test. + 2014-03-17 Kai Tietz * gcc.c-torture/compile/20010327-1.c: Disable test for LLP64 targets. diff --git a/gcc/testsuite/gcc.dg/gomp/pr60534.c b/gcc/testsuite/gcc.dg/gomp/pr60534.c new file mode 100644 index 0000000..f8a6bdc --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/pr60534.c @@ -0,0 +1,16 @@ +/* PR middle-end/60534 */ +/* { dg-do compile } */ +/* { dg-options "-fopenmp -O -fno-tree-loop-optimize" } */ + +extern int d[]; + +int +foo (int a) +{ + int c = 0; + int l; +#pragma omp simd reduction(+: c) + for (l = 0; l < a; ++l) + c += d[l]; + return c; +}