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 b4c4292..08951d9 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 40ad4c5..822aae5 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;