nv50: fix find_dom_frontier
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:28:39 +0000 (18:28 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:28:39 +0000 (18:28 +0200)
src/gallium/drivers/nv50/nv50_pc.c

index 28e32eadb7dec36765ec5ecf081be76aff3e5abe..c2f2ab3ef30fe7929fea5cacacc5f7a7c641b8f4 100644 (file)
@@ -631,6 +631,7 @@ nvbb_reachable_by(struct nv_basic_block *bf, struct nv_basic_block *bp,
 static struct nv_basic_block *
 nvbb_find_dom_frontier(struct nv_basic_block *b, struct nv_basic_block *df)
 {
+   struct nv_basic_block *out;
    int i;
 
    if (!nvbb_dominated_by(df, b)) {
@@ -641,11 +642,11 @@ nvbb_find_dom_frontier(struct nv_basic_block *b, struct nv_basic_block *df)
             return df;
       }
    }
-   for (i = 0; i < 2 && b->out[i]; ++i) {
-      if (b->out_kind[i] == CFG_EDGE_BACK)
+   for (i = 0; i < 2 && df->out[i]; ++i) {
+      if (df->out_kind[i] == CFG_EDGE_BACK)
          continue;
-      if ((df = nvbb_find_dom_frontier(b, b->out[i])))
-         return df;
+      if ((out = nvbb_find_dom_frontier(b, df->out[i])))
+         return out;
    }
    return NULL;
 }