diff options
author | Richard Biener <rguenther@suse.de> | 2015-11-30 14:50:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-11-30 14:50:48 +0000 |
commit | 7a5a0decae0af00cf736ec2c8558c185e59e47b8 (patch) | |
tree | f64cb9bd68353d262c591f673ade4384a0d349d2 /gcc | |
parent | b699adcc9eec16b7856635658d12518b45ef0d3b (diff) | |
download | gcc-7a5a0decae0af00cf736ec2c8558c185e59e47b8.zip gcc-7a5a0decae0af00cf736ec2c8558c185e59e47b8.tar.gz gcc-7a5a0decae0af00cf736ec2c8558c185e59e47b8.tar.bz2 |
re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1403 with -fprofile-generate)
2015-11-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/68592
* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
on the pattern def sequence.
* gfortran.dg/pr68592.f: New testcase.
From-SVN: r231074
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr68592.f | 20 | ||||
-rw-r--r-- | gcc/tree-vect-loop.c | 7 |
4 files changed, 38 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f5a82388..94ce1a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-11-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/68592 + * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also + on the pattern def sequence. + 2015-11-30 Nathan Sidwell <nathan@acm.org> * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 805d794..368b4e7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-11-30 Richard Biener <rguenther@suse.de> + + PR tree-optimization/68592 + * gfortran.dg/pr68592.f: New testcase. + 2015-11-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/68534 diff --git a/gcc/testsuite/gfortran.dg/pr68592.f b/gcc/testsuite/gfortran.dg/pr68592.f new file mode 100644 index 0000000..413ce80 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr68592.f @@ -0,0 +1,20 @@ +! PR tree-optimization/68592 +! { dg-do compile } +! { dg-require-profiling "-fprofile-generate" } +! { dg-options "-Ofast -fprofile-generate" } +! { dg-additional-options "-mavx" { target x86_64-*-* i?86-*-* } } + PARAMETER (MXCPGA=320,ZERO=0.0) + DIMENSION CPNORM(MXCPGA),CDNORM(MXCPGA), + * CFNORM(MXCPGA) + KTYPIL = KTYPI() + DO 84 K=1,NOGTF + LMP=LMP+1 + CFNORM(LMP)=ZERO + IF (KTYPIL.EQ.1) LMP=CMPILMP + IF (KTYPIL.EQ.2) CPNORM(LMP)=CMPILMP + IF (KTYPIL.EQ.3) CDNORM(LMP)=CMPILMP + IF (KTYPIL.EQ.4) LMP=CMPILMP + IF (KTYPIL.EQ.6) LMP=CMPILMP + 84 CONTINUE + CALL MMPNOR(CPNORM,CDNORM,CFNORM) + END diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 7d1f555..ee32166 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -2178,6 +2178,13 @@ again: { gcc_assert (STMT_SLP_TYPE (stmt_info) == loop_vect); stmt_info = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (stmt_info)); + for (gimple_stmt_iterator pi + = gsi_start (STMT_VINFO_PATTERN_DEF_SEQ (stmt_info)); + !gsi_end_p (pi); gsi_next (&pi)) + { + gimple *pstmt = gsi_stmt (pi); + STMT_SLP_TYPE (vinfo_for_stmt (pstmt)) = loop_vect; + } } STMT_SLP_TYPE (stmt_info) = loop_vect; } |