haifa-sched.c (build_control_flow): Change unreachable simple loop test to check...
authorStan Cox <scox@cygnus.com>
Tue, 4 Jan 2000 17:19:41 +0000 (17:19 +0000)
committerStan Cox <scox@gcc.gnu.org>
Tue, 4 Jan 2000 17:19:41 +0000 (17:19 +0000)
2000-01-04  Stan Cox  <scox@cygnus.com>
* haifa-sched.c (build_control_flow): Change unreachable simple
loop test to check if current block has only one predecessor.
(find_rgns): Initialize degree.  Use dest as degree index, not src.

From-SVN: r31208

gcc/ChangeLog
gcc/haifa-sched.c

index fa733454d431c7c6a074754446bacba1d56b4bcf..6d630d441b44376f404f357370df17950e110c9b 100644 (file)
@@ -1,3 +1,9 @@
+2000-01-04  Stan Cox  <scox@cygnus.com>
+
+       * haifa-sched.c (build_control_flow): Change unreachable simple
+       loop test to check if current block has only one predecessor.
+       (find_rgns): Initialize degree.  Use dest as degree index, not src.
+
 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
index e3eedbb6793a69b88a5b9afbc28ce6ae74c8b396..f9fb50464f938d39c8f6e843a669435517ef7289 100644 (file)
@@ -1061,7 +1061,7 @@ build_control_flow (edge_list)
       basic_block b = BASIC_BLOCK (i);
 
       if (b->pred == NULL
-         || (b->pred->dest == b
+         || (b->pred->src == b
              && b->pred->pred_next == NULL))
        unreachable = 1;
     }
@@ -1531,12 +1531,14 @@ find_rgns (edge_list, dom)
      to hold degree counts.  */
   degree = dfs_nr;
 
+  for (i = 0; i < n_basic_blocks; i++)
+    degree[i] = 0;
   for (i = 0; i < num_edges; i++)
     {
       edge e = INDEX_EDGE (edge_list, i);
 
-      if (e->src != ENTRY_BLOCK_PTR)
-       degree[e->src->index]++;
+      if (e->dest != EXIT_BLOCK_PTR)
+       degree[e->dest->index]++;
     }
 
   /* Do not perform region scheduling if there are any unreachable