tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce after local CSE.
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
Tue, 1 Oct 2019 17:10:01 +0000 (17:10 +0000)
committerPrathamesh Kulkarni <prathamesh3492@gcc.gnu.org>
Tue, 1 Oct 2019 17:10:01 +0000 (17:10 +0000)
2019-10-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
after local CSE.

From-SVN: r276417

gcc/ChangeLog
gcc/tree-if-conv.c

index b4c4292c299abbb712bd461169ad59e2d604faae..08951d94f50681cd6721f87f8930a3e08df61cf6 100644 (file)
@@ -1,3 +1,8 @@
+2019-10-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+
+       * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
+       after local CSE.
+
 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
 
        * doc/invoke.texi (early-inlining-insns-O2): Document.
index 40ad4c5947aa838241407161d13ac9464348fd53..822aae5b83f40b643c8ee795b4d91367e0d893cb 100644 (file)
@@ -3060,9 +3060,6 @@ tree_if_conversion (class loop *loop, vec<gimple *> *preds)
      on-the-fly.  */
   combine_blocks (loop);
 
-  /* Delete dead predicate computations.  */
-  ifcvt_local_dce (loop->header);
-
   /* Perform local CSE, this esp. helps the vectorizer analysis if loads
      and stores are involved.  CSE only the loop body, not the entry
      PHIs, those are to be kept in sync with the non-if-converted copy.
@@ -3071,6 +3068,9 @@ tree_if_conversion (class loop *loop, vec<gimple *> *preds)
   bitmap_set_bit (exit_bbs, single_exit (loop)->dest->index);
   bitmap_set_bit (exit_bbs, loop->latch->index);
   todo |= do_rpo_vn (cfun, loop_preheader_edge (loop), exit_bbs);
+
+  /* Delete dead predicate computations.  */
+  ifcvt_local_dce (loop->header);
   BITMAP_FREE (exit_bbs);
 
   todo |= TODO_cleanup_cfg;