aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2005-07-12 01:59:17 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2005-07-11 23:59:17 +0000
commitb7eae7b8d19f531d0ef3a1efb1fdacfdbc5bfc92 (patch)
tree2dbef04c2f2db68628a4762f85cddb33c11d1be9 /gcc/testsuite
parent70028b61459cb2089d18bbd42d582c3411a9edfc (diff)
downloadgcc-b7eae7b8d19f531d0ef3a1efb1fdacfdbc5bfc92.zip
gcc-b7eae7b8d19f531d0ef3a1efb1fdacfdbc5bfc92.tar.gz
gcc-b7eae7b8d19f531d0ef3a1efb1fdacfdbc5bfc92.tar.bz2
tree-flow.h (remove_empty_loops, [...]): Declare.
* tree-flow.h (remove_empty_loops, single_dom_exit): Declare. * passes.c (init_optimization_passes): Add pass_empty_loop. * tree-pass.h (pass_empty_loop): Declare. * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop, try_remove_empty_loop, remove_empty_loops): New functions. * tree-ssa-loop-ivopts.c (single_dom_exit): Export. * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New. * gcc.dg/tree-ssa/loop-10.c: New test. From-SVN: r101901
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-10.c32
2 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 174c679..2a0a5f8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-07-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * gcc.dg/tree-ssa/loop-10.c: New test.
+
2005-07-11 Kazu Hirata <kazu@codesourcery.com>
* gcc.c-torture/execute/20020720-1.x: Remove.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
new file mode 100644
index 0000000..6a0f94d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-vars" } */
+
+int bar (void);
+
+void foo (void)
+{
+ unsigned i, j, n;
+
+ for (i = 0; i < 100000; i++)
+ ;
+
+ n = bar ();
+ for (i = 0; i < n; i++)
+ ;
+
+ for (i = 0; i < n; i++)
+ for (j = 0; j < n; j++)
+ ;
+
+ /* These should not be removed. */
+ for (i = 0; i < 10000; i++)
+ bar ();
+
+ for (i = 0; i != n; i += 2)
+ ;
+}
+
+/* { dg-final { scan-tree-dump-times "if " 3 "vars" } } */
+/* { dg-final { scan-tree-dump-times "bar " 2 "vars" } } */
+
+/* { dg-final { cleanup-tree-dump "vars" } } */