aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloopanal.c
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-03-18 17:42:34 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2004-03-18 16:42:34 +0000
commit689ba89dd8da4c7ecad4dab5e98d0d87d4e64383 (patch)
tree245f4992ca85428a919452579f49376b65e76f95 /gcc/cfgloopanal.c
parent327e5343434d5a2b3e3e10bef5f4be570aed4d0c (diff)
downloadgcc-689ba89dd8da4c7ecad4dab5e98d0d87d4e64383.zip
gcc-689ba89dd8da4c7ecad4dab5e98d0d87d4e64383.tar.gz
gcc-689ba89dd8da4c7ecad4dab5e98d0d87d4e64383.tar.bz2
doloop.c: Removed.
* doloop.c: Removed. * loop-doloop.c: New file. * Makefile.in (doloop.o): Remove. (loop-doloop.o): New. * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare. * cfgloopanal.c (get_loop_level): New function. * loop-iv.c (iv_number_of_iterations): Handle case when loop is leaved immediatelly. * loop.c (strength_reduce): Do not call doloop optimization. * loop.h (LOOP_BCT): Removed. * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT. (rest_of_handle_loop2): Call doloop_optimize_loops. (rest_of_compilation): Test for optimizations moved to rest_of_handle_loop2. From-SVN: r79625
Diffstat (limited to 'gcc/cfgloopanal.c')
-rw-r--r--gcc/cfgloopanal.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index 9b3ffa0..63d6f41 100644
--- a/gcc/cfgloopanal.c
+++ b/gcc/cfgloopanal.c
@@ -457,3 +457,20 @@ expected_loop_iterations (const struct loop *loop)
return (freq_latch + freq_in - 1) / freq_in;
}
}
+
+/* Returns the maximum level of nesting of subloops of LOOP. */
+
+unsigned
+get_loop_level (const struct loop *loop)
+{
+ const struct loop *ploop;
+ unsigned mx = 0, l;
+
+ for (ploop = loop->inner; ploop; ploop = ploop->next)
+ {
+ l = get_loop_level (ploop);
+ if (l >= mx)
+ mx = l + 1;
+ }
+ return mx;
+}