From 78810bd35336529a133661a5e4f801ccda57fd74 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 15 Jan 2016 15:43:48 +0000 Subject: re PR tree-optimization/66856 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234) 2016-01-15 Richard Biener PR tree-optimization/66856 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here. * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count. (vect_create_new_slp_node): Increment stmt reference count. (vect_get_and_check_slp_defs): Make sure stmts are nor already in an SLP tree before swapping operands. (vect_build_slp_tree): Likewise. (destroy_bb_vec_info): Free stmt info after SLP instances. * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count. * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field. (STMT_VINFO_NUM_SLP_USES): New macro. * gcc.dg/torture/pr66856-1.c: New testcase. * gcc.dg/torture/pr66856-2.c: Likewise. From-SVN: r232435 --- gcc/tree-vect-stmts.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/tree-vect-stmts.c') diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 872fa07..635c797 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -8391,6 +8391,8 @@ new_stmt_vec_info (gimple *stmt, vec_info *vinfo) STMT_VINFO_SAME_ALIGN_REFS (res).create (0); STMT_SLP_TYPE (res) = loop_vect; + STMT_VINFO_NUM_SLP_USES (res) = 0; + GROUP_FIRST_ELEMENT (res) = NULL; GROUP_NEXT_ELEMENT (res) = NULL; GROUP_SIZE (res) = 0; -- cgit v1.1