tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
authorRichard Biener <rguenther@suse.de>
Wed, 18 Mar 2015 12:29:20 +0000 (12:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 18 Mar 2015 12:29:20 +0000 (12:29 +0000)
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

gcc/ChangeLog
gcc/tree-ssa-loop-ch.c
gcc/tree-vect-generic.c

index d2ff5c0a5f708bf98c5d27aaebe1dc0e42b84ddf..0b27dc20f909065147976465978ab78471dbb6cc 100644 (file)
@@ -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
index d759de795257924fd0e92bec781976c31fa7336b..c6441b87d610085edc8b7e2db96e0175cefe7ee7 100644 (file)
@@ -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
index dc110282719c5c6fdf6d6b07432b17700efc4e28..a88b22f659da95a24848c7254b4bb68646f141fc 100644 (file)
@@ -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