diff options
author | Richard Guenther <rguenther@suse.de> | 2008-09-07 10:05:37 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2008-09-07 10:05:37 +0000 |
commit | 73356a7d3b37e41a0f43a2d95f8def36416bee7d (patch) | |
tree | 865be78b396f6699b001aaad54ffac8246f59a30 /gcc | |
parent | fe2c39c8c2e0aef6b043282442edf9e7f3cf4896 (diff) | |
download | gcc-73356a7d3b37e41a0f43a2d95f8def36416bee7d.zip gcc-73356a7d3b37e41a0f43a2d95f8def36416bee7d.tar.gz gcc-73356a7d3b37e41a0f43a2d95f8def36416bee7d.tar.bz2 |
re PR tree-optimization/36630 (ICE in vect_update_ivs_after_vectorizer)
PR tree-optimization/36630
* tree-vect-transform.c (vect_update_ivs_after_vectorizer):
Call STRIP_NOPS before calling evolution_part_in_loop_num.
Co-Authored-By: Ira Rosen <irar@il.ibm.com>
From-SVN: r140085
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr36630.c | 16 | ||||
-rw-r--r-- | gcc/tree-vect-transform.c | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5520820..69d99be 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-09-07 Richard Guenther <rguenther@suse.de> + Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/36630 + * tree-vect-transform.c (vect_update_ivs_after_vectorizer): + Call STRIP_NOPS before calling evolution_part_in_loop_num. + 2008-09-07 Dorit Nuzman <dorit@il.ibm.com> Ira Rosen <irar@il.ibm.com> diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7d83cbb..b05e0c7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2008-09-07 Richard Guenther <rguenther@suse.de> + Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/36630 + * gcc.dg/vect/pr36630.c: New test. + 2008-09-07 Daniel Kraft <d@domob.eu> * gfortran.dg/stfunc_6.f90: Extended testcase to include more tests diff --git a/gcc/testsuite/gcc.dg/vect/pr36630.c b/gcc/testsuite/gcc.dg/vect/pr36630.c new file mode 100644 index 0000000..9d85aff --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr36630.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ + +void +foo (unsigned char *x, short y) +{ + short i; + + i = 2; + while (i < y) + { + x[i - 1] = x[i]; + i = i + 1; + } +} +/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 3a77c5b..17f3217 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -7332,6 +7332,7 @@ vect_update_ivs_after_vectorizer (loop_vec_info loop_vinfo, tree niters, access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi)); gcc_assert (access_fn); + STRIP_NOPS (access_fn); evolution_part = unshare_expr (evolution_part_in_loop_num (access_fn, loop->num)); gcc_assert (evolution_part != NULL_TREE); |