diff options
author | Richard Biener <rguenther@suse.de> | 2015-03-18 12:29:20 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-03-18 12:29:20 +0000 |
commit | 9538c95bb185a04a86a993c4332b7f19aca95f1e (patch) | |
tree | 82f17baa9df7d450d4c2cc2e708ccb4bf32abfc6 | |
parent | 076701b69d3a1f02e46df451ab9cb092863e5baa (diff) | |
download | gcc-9538c95bb185a04a86a993c4332b7f19aca95f1e.zip gcc-9538c95bb185a04a86a993c4332b7f19aca95f1e.tar.gz gcc-9538c95bb185a04a86a993c4332b7f19aca95f1e.tar.bz2 |
tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
2015-03-18 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
(pass_ch::execute): Cleanup the CFG only if we did sth.
* tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
From-SVN: r221487
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ch.c | 7 | ||||
-rw-r--r-- | gcc/tree-vect-generic.c | 3 |
3 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2ff5c0..0b27dc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-03-18 Richard Biener <rguenther@suse.de> + + * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg. + (pass_ch::execute): Cleanup the CFG only if we did sth. + * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg. + 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * expmed.c (synth_mult): Use std::swap instead of manually diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index d759de7..c6441b8 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -159,7 +159,7 @@ const pass_data pass_data_ch = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_cleanup_cfg, /* todo_flags_finish */ + 0, /* todo_flags_finish */ }; class pass_ch : public gimple_opt_pass @@ -184,6 +184,7 @@ pass_ch::execute (function *fun) basic_block *bbs, *copied_bbs; unsigned n_bbs; unsigned bbs_size; + bool changed = false; loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES); @@ -291,6 +292,8 @@ pass_ch::execute (function *fun) are not now, since there was the loop exit condition. */ split_edge (loop_preheader_edge (loop)); split_edge (loop_latch_edge (loop)); + + changed = true; } update_ssa (TODO_update_ssa); @@ -298,7 +301,7 @@ pass_ch::execute (function *fun) free (copied_bbs); loop_optimizer_finalize (); - return 0; + return changed ? TODO_cleanup_cfg : 0; } } // anon namespace diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index dc11028..a88b22f 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -1740,8 +1740,7 @@ const pass_data pass_data_lower_vector = PROP_gimple_lvec, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - ( TODO_update_ssa - | TODO_cleanup_cfg ), /* todo_flags_finish */ + TODO_update_ssa, /* todo_flags_finish */ }; class pass_lower_vector : public gimple_opt_pass |