From: Richard Biener Date: Mon, 17 Feb 2014 15:34:03 +0000 (+0000) Subject: tree-vect-stmts.c (free_stmt_vec_info): Clear BB and release SSA defs of pattern... X-Git-Tag: releases/gcc-4.9.0~893 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f0281fde20ca4d61c5e51213c096492a7c3a8acf;p=thirdparty%2Fgcc.git tree-vect-stmts.c (free_stmt_vec_info): Clear BB and release SSA defs of pattern stmts. 2014-02-17 Richard Biener * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and release SSA defs of pattern stmts. From-SVN: r207826 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dcd4614734a4..c0e3b699b6ea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-02-17 Richard Biener + + * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and + release SSA defs of pattern stmts. + 2014-02-17 Richard Biener * tree-inline.c (expand_call_inline): Release the virtual diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 8ed834bc5fa5..7e47feb61fcc 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -7389,13 +7389,25 @@ free_stmt_vec_info (gimple stmt) if (patt_info) { gimple_seq seq = STMT_VINFO_PATTERN_DEF_SEQ (patt_info); + gimple patt_stmt = STMT_VINFO_STMT (patt_info); + gimple_set_bb (patt_stmt, NULL); + tree lhs = gimple_get_lhs (patt_stmt); + if (TREE_CODE (lhs) == SSA_NAME) + release_ssa_name (lhs); if (seq) { gimple_stmt_iterator si; for (si = gsi_start (seq); !gsi_end_p (si); gsi_next (&si)) - free_stmt_vec_info (gsi_stmt (si)); + { + gimple seq_stmt = gsi_stmt (si); + gimple_set_bb (seq_stmt, NULL); + lhs = gimple_get_lhs (patt_stmt); + if (TREE_CODE (lhs) == SSA_NAME) + release_ssa_name (lhs); + free_stmt_vec_info (seq_stmt); + } } - free_stmt_vec_info (STMT_VINFO_RELATED_STMT (stmt_info)); + free_stmt_vec_info (patt_stmt); } }