diff --git a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp index cd8f28955e4..5d2aa587a31 100644 --- a/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp @@ -466,10 +466,10 @@ RegAlloc::buildLiveSets(BasicBlock *bb) if (bn->cfg.visit(sequence)) if (!buildLiveSets(bn)) return false; - if (n++ == 0) - bb->liveSet = bn->liveSet; - else + if (n++ || bb->liveSet.marker) bb->liveSet |= bn->liveSet; + else + bb->liveSet = bn->liveSet; } if (!n && !bb->liveSet.marker) bb->liveSet.fill(0);