diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2018-07-31 14:26:18 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-07-31 14:26:18 +0000 |
commit | b5b56c2a039cd308a9d00fc35baf65c1fb59070b (patch) | |
tree | c5d6d08e6e4b53af6d0690bfd84301ec152bd335 /gcc/tree-vect-loop-manip.c | |
parent | f5ae28565e7b0788c6b7a4945c2b67c54f46c45a (diff) | |
download | gcc-b5b56c2a039cd308a9d00fc35baf65c1fb59070b.zip gcc-b5b56c2a039cd308a9d00fc35baf65c1fb59070b.tar.gz gcc-b5b56c2a039cd308a9d00fc35baf65c1fb59070b.tar.bz2 |
[41/46] Add vec_info::remove_stmt
This patch adds a new helper function for permanently removing a
statement and its associated stmt_vec_info.
2018-07-31 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (vec_info::remove_stmt): Declare.
* tree-vectorizer.c (vec_info::remove_stmt): New function.
* tree-vect-loop-manip.c (vect_set_loop_condition): Use it.
* tree-vect-loop.c (vect_transform_loop): Likewise.
* tree-vect-slp.c (vect_schedule_slp): Likewise.
* tree-vect-stmts.c (vect_remove_stores): Likewise.
From-SVN: r263156
Diffstat (limited to 'gcc/tree-vect-loop-manip.c')
-rw-r--r-- | gcc/tree-vect-loop-manip.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index 504e4e3..dd7463a 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -935,8 +935,12 @@ vect_set_loop_condition (struct loop *loop, loop_vec_info loop_vinfo, loop_cond_gsi); /* Remove old loop exit test. */ - gsi_remove (&loop_cond_gsi, true); - free_stmt_vec_info (orig_cond); + stmt_vec_info orig_cond_info; + if (loop_vinfo + && (orig_cond_info = loop_vinfo->lookup_stmt (orig_cond))) + loop_vinfo->remove_stmt (orig_cond_info); + else + gsi_remove (&loop_cond_gsi, true); if (dump_enabled_p ()) { |