summaryrefslogtreecommitdiff
path: root/gcc/passes.def
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-25 10:22:57 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-25 10:22:57 +0000
commitb1759f481badaf7cb219797391ca44d5b858b211 (patch)
tree55f77a216d9ec3e9a34f6aafdd73a26855b05273 /gcc/passes.def
parent9f04f8147f9c8f453d55d16b2a1989b7f3fceee0 (diff)
downloadgcc-b1759f481badaf7cb219797391ca44d5b858b211.tar.gz
2016-11-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/78343 * passes.def: Add CD-DCE pass after loop splitting. * tree-ssa-dce.c (find_obviously_necessary_stmts): Move SCEV init/finalize ... (perform_tree_ssa_dce): ... here. Deal with being executed inside the loop pipeline in aggressive mode. * gcc.dg/tree-ssa/sccp-2.c: New testcase. * gcc.dg/autopar/uns-outer-6.c: Adjust. * gcc.dg/tree-ssa/20030808-1.c: Likewise. * gcc.dg/tree-ssa/20040305-1.c: Likewise. * gcc.dg/vect/pr38529.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242872 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.def')
-rw-r--r--gcc/passes.def3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/passes.def b/gcc/passes.def
index b73000923b6..1117b8b112b 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -272,6 +272,9 @@ along with GCC; see the file COPYING3. If not see
NEXT_PASS (pass_tree_unswitch);
NEXT_PASS (pass_scev_cprop);
NEXT_PASS (pass_loop_split);
+ /* All unswitching, final value replacement and splitting can expose
+ empty loops. Remove them now. */
+ NEXT_PASS (pass_cd_dce);
NEXT_PASS (pass_record_bounds);
NEXT_PASS (pass_loop_distribution);
NEXT_PASS (pass_copy_prop);