aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-03-18 12:29:20 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-03-18 12:29:20 +0000
commit9538c95bb185a04a86a993c4332b7f19aca95f1e (patch)
tree82f17baa9df7d450d4c2cc2e708ccb4bf32abfc6
parent076701b69d3a1f02e46df451ab9cb092863e5baa (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/tree-ssa-loop-ch.c7
-rw-r--r--gcc/tree-vect-generic.c3
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