From: Francisco Jerez Date: Tue, 27 Dec 2011 11:43:27 +0000 (+0100) Subject: nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets(). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f4dbdcbfcf7370deeb5dcccec2e8d1c471d66517;p=mesa.git nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets(). --- 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);