diff options
author | Richard Biener <rguenther@suse.de> | 2013-03-18 08:50:35 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-03-18 08:50:35 +0000 |
commit | 789c34e3c7bb5e5c7c2cadd8de7c395654bf99cf (patch) | |
tree | fd3c04f48ff5f735f369b2139b77be033bcb4b05 /gcc/tree-vectorizer.c | |
parent | 076b460557487a225815e3870405e67a3f149a0c (diff) | |
download | gcc-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.c | 11 |
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; } |