OSDN Git Service

nv50/ir: make sure cfg iterator always hits all blocks
[android-x86/external-mesa.git] / src / gallium / drivers / nouveau / codegen / nv50_ir_graph.cpp
index 23414d5..b1076cf 100644 (file)
@@ -287,7 +287,10 @@ private:
 
       bb.push(node);
 
-      while (bb.getSize()) {
+      while (bb.getSize() || cross.getSize()) {
+         if (bb.getSize() == 0)
+            cross.moveTo(bb);
+
          node = reinterpret_cast<Graph::Node *>(bb.pop().u.p);
          assert(node);
          if (!node->visit(sequence))
@@ -314,9 +317,6 @@ private:
             }
          }
          nodes[count++] = node;
-
-         if (bb.getSize() == 0)
-            cross.moveTo(bb);
       }
    }