diff options
author | Marek Polacek <polacek@redhat.com> | 2014-03-17 14:15:51 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2014-03-17 14:15:51 +0000 |
commit | ab2ffbeb332afb09e6603e3a8a96e5d7f1f3e3c6 (patch) | |
tree | 14df3553deedf61872893c8e7021d826f7a34289 /gcc | |
parent | 5523efdf24d43022082ccf103f11f144a0ff9548 (diff) | |
download | gcc-ab2ffbeb332afb09e6603e3a8a96e5d7f1f3e3c6.zip gcc-ab2ffbeb332afb09e6603e3a8a96e5d7f1f3e3c6.tar.gz gcc-ab2ffbeb332afb09e6603e3a8a96e5d7f1f3e3c6.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/omp-low.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr60534.c | 16 |
4 files changed, 30 insertions, 0 deletions
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 <polacek@redhat.com> + + 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 <ebotcazou@adacore.com> * 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 <polacek@redhat.com> + + PR middle-end/60534 + * gcc.dg/gomp/pr60534.c: New test. + 2014-03-17 Kai Tietz <ktietz@redhat.com> * 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; +} |