ra: Pull the body of a loop out to a helper function.
authorEric Anholt <eric@anholt.net>
Fri, 23 Oct 2015 20:46:40 +0000 (21:46 +0100)
committerEric Anholt <eric@anholt.net>
Tue, 25 Jul 2017 21:44:52 +0000 (14:44 -0700)
I was going to indent this code another level, and decided it would be
easier to read as a helper.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/util/register_allocate.c

index 8af93c0406c581af4574da0e061ac233235c14c6..35ef9a714cc83400f483015589f7d44f3b0ab98e 100644 (file)
@@ -539,6 +539,23 @@ ra_simplify(struct ra_graph *g)
    g->stack_optimistic_start = stack_optimistic_start;
 }
 
+static bool
+ra_any_neighbors_conflict(struct ra_graph *g, unsigned int n, unsigned int r)
+{
+   unsigned int i;
+
+   for (i = 0; i < g->nodes[n].adjacency_count; i++) {
+      unsigned int n2 = g->nodes[n].adjacency_list[i];
+
+      if (!g->nodes[n2].in_stack &&
+          BITSET_TEST(g->regs->regs[r].conflicts, g->nodes[n2].reg)) {
+         return true;
+      }
+   }
+
+   return false;
+}
+
 /**
  * Pops nodes from the stack back into the graph, coloring them with
  * registers as they go.
@@ -552,7 +569,6 @@ ra_select(struct ra_graph *g)
    int start_search_reg = 0;
 
    while (g->stack_count != 0) {
-      unsigned int i;
       unsigned int ri;
       unsigned int r = -1;
       int n = g->stack[g->stack_count - 1];
@@ -566,17 +582,8 @@ ra_select(struct ra_graph *g)
          if (!reg_belongs_to_class(r, c))
            continue;
 
-        /* Check if any of our neighbors conflict with this register choice. */
-        for (i = 0; i < g->nodes[n].adjacency_count; i++) {
-           unsigned int n2 = g->nodes[n].adjacency_list[i];
-
-           if (!g->nodes[n2].in_stack &&
-               BITSET_TEST(g->regs->regs[r].conflicts, g->nodes[n2].reg)) {
-              break;
-           }
-        }
-        if (i == g->nodes[n].adjacency_count)
-           break;
+         if (!ra_any_neighbors_conflict(g, n, r))
+            break;
       }
 
       /* set this to false even if we return here so that