aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-01-12 08:36:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-01-12 08:36:24 +0000
commit2935d9941464d64964a1885f5fcabcb0aa5290e5 (patch)
tree3282a8496433940cabf7c73d8381b6d2766dc370 /gcc/tree-vect-loop.c
parent66c16fd94fe26bcea334ffbe9a4f3b8aa2e1cf00 (diff)
downloadgcc-2935d9941464d64964a1885f5fcabcb0aa5290e5.zip
gcc-2935d9941464d64964a1885f5fcabcb0aa5290e5.tar.gz
gcc-2935d9941464d64964a1885f5fcabcb0aa5290e5.tar.bz2
re PR tree-optimization/69168 (ICE in vect_analyze_loop_2, at tree-vect-loop.c:2182)
2016-01-12 Richard Biener <rguenther@suse.de> PR tree-optimization/69168 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and pattern stmt SLP type. * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may end up unused so cope with that case. * gcc.dg/torture/pr69168.c: New testcase. From-SVN: r232261
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index a797f70..706a25d 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -2189,10 +2189,11 @@ again:
!gsi_end_p (si); gsi_next (&si))
{
stmt_vec_info stmt_info = vinfo_for_stmt (gsi_stmt (si));
+ STMT_SLP_TYPE (stmt_info) = loop_vect;
if (STMT_VINFO_IN_PATTERN_P (stmt_info))
{
- gcc_assert (STMT_SLP_TYPE (stmt_info) == loop_vect);
stmt_info = vinfo_for_stmt (STMT_VINFO_RELATED_STMT (stmt_info));
+ STMT_SLP_TYPE (stmt_info) = loop_vect;
for (gimple_stmt_iterator pi
= gsi_start (STMT_VINFO_PATTERN_DEF_SEQ (stmt_info));
!gsi_end_p (pi); gsi_next (&pi))
@@ -2201,7 +2202,6 @@ again:
STMT_SLP_TYPE (vinfo_for_stmt (pstmt)) = loop_vect;
}
}
- STMT_SLP_TYPE (stmt_info) = loop_vect;
}
}
/* Free optimized alias test DDRS. */