aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2019-10-01 17:10:01 +0000
committerPrathamesh Kulkarni <prathamesh3492@gcc.gnu.org>2019-10-01 17:10:01 +0000
commitf30b3d2891cef9803badb3f85d739c0fcfafd585 (patch)
tree0e20192c43efd63d1b2c98981f55d565a607abf2
parent0b92cf305dcf34387a8e2564e55ca8948df3b47a (diff)
downloadgcc-f30b3d2891cef9803badb3f85d739c0fcfafd585.zip
gcc-f30b3d2891cef9803badb3f85d739c0fcfafd585.tar.gz
gcc-f30b3d2891cef9803badb3f85d739c0fcfafd585.tar.bz2
tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce after local CSE.
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-if-conv.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b4c4292..08951d9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 40ad4c5..822aae5 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -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;