diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp index 23414d54ab1..b1076cf4129 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp @@ -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(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); } }