diff options
author | Richard Biener <rguenther@suse.de> | 2014-02-17 15:34:03 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-02-17 15:34:03 +0000 |
commit | f0281fde20ca4d61c5e51213c096492a7c3a8acf (patch) | |
tree | d65a08b9b082a7be9c2776a4f8f672289b40a152 /gcc/tree-vect-stmts.c | |
parent | c742772ca24ded6be152bcfd86c0925484a08c0a (diff) | |
download | gcc-f0281fde20ca4d61c5e51213c096492a7c3a8acf.zip gcc-f0281fde20ca4d61c5e51213c096492a7c3a8acf.tar.gz gcc-f0281fde20ca4d61c5e51213c096492a7c3a8acf.tar.bz2 |
tree-vect-stmts.c (free_stmt_vec_info): Clear BB and release SSA defs of pattern stmts.
2014-02-17 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
release SSA defs of pattern stmts.
From-SVN: r207826
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r-- | gcc/tree-vect-stmts.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 8ed834b..7e47feb 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); } } |