aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-03-18 08:50:35 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-03-18 08:50:35 +0000
commit789c34e3c7bb5e5c7c2cadd8de7c395654bf99cf (patch)
treefd3c04f48ff5f735f369b2139b77be033bcb4b05 /gcc/tree-vectorizer.c
parent076b460557487a225815e3870405e67a3f149a0c (diff)
downloadgcc-789c34e3c7bb5e5c7c2cadd8de7c395654bf99cf.zip
gcc-789c34e3c7bb5e5c7c2cadd8de7c395654bf99cf.tar.gz
gcc-789c34e3c7bb5e5c7c2cadd8de7c395654bf99cf.tar.bz2
tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when there is nothing to do.
2013-03-18 Richard Biener <rguenther@suse.de> * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when there is nothing to do. * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa. * tree-vectorizer.c (vectorize_loops): Update virtual and loop-closed SSA once. * tree-vect-loop.c (vect_transform_loop): Do not update SSA here. From-SVN: r196770
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r--gcc/tree-vectorizer.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 42ebb8d..9d46199 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -149,7 +149,16 @@ vectorize_loops (void)
free_stmt_vec_info_vec ();
- return num_vectorized_loops > 0 ? TODO_cleanup_cfg : 0;
+ if (num_vectorized_loops > 0)
+ {
+ /* If we vectorized any loop only virtual SSA form needs to be updated.
+ ??? Also while we try hard to update loop-closed SSA form we fail
+ to properly do this in some corner-cases (see PR56286). */
+ rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa_only_virtuals);
+ return TODO_cleanup_cfg;
+ }
+
+ return 0;
}