From 8543a44827ae51f7ae6f3ba02b9472746cbc825c Mon Sep 17 00:00:00 2001
From: rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 21 Nov 2006 01:08:40 +0000
Subject: [PATCH] 	* cfgloopmanip.c (add_loop, duplicate_loop): Do not
 set level 	of the loop. 	* cfgloop.c (flow_loop_level_compute,
 flow_loops_level_compute): 	Removed. 	(flow_loop_dump): Do not dump
 loop level. 	(flow_loops_find): Do not call flow_loops_level_compute. 
 * cfgloop.h (struct loop): Remove level field.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119040 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog      | 10 ++++++++++
 gcc/cfgloop.c      | 50 ++--------------------------------------------
 gcc/cfgloop.h      |  4 ----
 gcc/cfgloopmanip.c |  6 +-----
 4 files changed, 13 insertions(+), 57 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c960ed934f77..7f99e2255a7e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
+	of the loop.
+	* cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
+	Removed.
+	(flow_loop_dump): Do not dump loop level.
+	(flow_loops_find): Do not call flow_loops_level_compute.
+	* cfgloop.h (struct loop): Remove level field.
+
 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
 
 	* tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 4a5631df0816..e00e6a62ea46 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -41,8 +41,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #define LATCH_EDGE(E) (*(int *) (E)->aux)
 
 static void flow_loops_cfg_dump (const struct loops *, FILE *);
-static int flow_loop_level_compute (struct loop *);
-static void flow_loops_level_compute (struct loops *);
 static void establish_preds (struct loop *);
 static void canonicalize_loop_headers (void);
 static bool glb_enum_p (basic_block, void *);
@@ -110,9 +108,8 @@ flow_loop_dump (const struct loop *loop, FILE *file,
 
   fprintf (file, ";;  header %d, latch %d\n",
 	   loop->header->index, loop->latch->index);
-  fprintf (file, ";;  depth %d, level %d, outer %ld\n",
-	   loop->depth, loop->level,
-	   (long) (loop->outer ? loop->outer->num : -1));
+  fprintf (file, ";;  depth %d, outer %ld\n",
+	   loop->depth, (long) (loop->outer ? loop->outer->num : -1));
 
   fprintf (file, ";;  nodes:");
   bbs = get_loop_body (loop);
@@ -355,45 +352,6 @@ flow_loop_tree_node_remove (struct loop *loop)
   loop->pred = NULL;
 }
 
-/* Helper function to compute loop nesting depth and enclosed loop level
-   for the natural loop specified by LOOP.  Returns the loop level.  */
-
-static int
-flow_loop_level_compute (struct loop *loop)
-{
-  struct loop *inner;
-  int level = 1;
-
-  if (! loop)
-    return 0;
-
-  /* Traverse loop tree assigning depth and computing level as the
-     maximum level of all the inner loops of this loop.  The loop
-     level is equivalent to the height of the loop in the loop tree
-     and corresponds to the number of enclosed loop levels (including
-     itself).  */
-  for (inner = loop->inner; inner; inner = inner->next)
-    {
-      int ilevel = flow_loop_level_compute (inner) + 1;
-
-      if (ilevel > level)
-	level = ilevel;
-    }
-
-  loop->level = level;
-  return level;
-}
-
-/* Compute the loop nesting depth and enclosed loop level for the loop
-   hierarchy tree specified by LOOPS.  Return the maximum enclosed loop
-   level.  */
-
-static void
-flow_loops_level_compute (struct loops *loops)
-{
-  flow_loop_level_compute (loops->tree_root);
-}
-
 /* A callback to update latch and header info for basic block JUMP created
    by redirecting an edge.  */
 
@@ -707,10 +665,6 @@ flow_loops_find (struct loops *loops)
 	  loop->num_nodes = flow_loop_nodes_find (loop->header, loop);
 	}
 
-      /* Assign the loop nesting depth and enclosed loop level for each
-	 loop.  */
-      flow_loops_level_compute (loops);
-
       loops->num = num_loops;
       initialize_loops_parallel_p (loops);
 
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index b02b4c7879ae..0874f54f832e 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -104,10 +104,6 @@ struct loop
   /* Superloops of the loop.  */
   struct loop **pred;
 
-  /* The height of the loop (enclosed loop levels) within the loop
-     hierarchy tree.  */
-  int level;
-
   /* The outer (parent) loop or NULL if outermost loop.  */
   struct loop *outer;
 
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index edb36976cc8a..028db02afe32 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -379,7 +379,6 @@ add_loop (struct loops *loops, struct loop *loop, struct loop *outer)
   /* Add it to loop structure.  */
   place_new_loop (loops, loop);
   flow_loop_tree_node_add (outer, loop);
-  loop->level = 1;
 
   /* Find its nodes.  */
   bbs = XCNEWVEC (basic_block, n_basic_blocks);
@@ -653,10 +652,7 @@ duplicate_loop (struct loops *loops, struct loop *loop, struct loop *target)
   cloop = XCNEW (struct loop);
   place_new_loop (loops, cloop);
 
-  /* Initialize copied loop.  */
-  cloop->level = loop->level;
-
-  /* Set it as copy of loop.  */
+  /* Mark the new loop as copy of LOOP.  */
   loop->copy = cloop;
 
   /* Add it to target.  */
-- 
GitLab