diff options
author | Francisco Jerez <[email protected]> | 2011-12-27 12:43:27 +0100 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2012-04-14 21:54:03 +0200 |
commit | f4dbdcbfcf7370deeb5dcccec2e8d1c471d66517 (patch) | |
tree | c24afb22d76628008181acadc2b93bfac6b107f5 | |
parent | 2fc014f8c0d9339b1652f4e037aee5697142304a (diff) |
nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets().
-rw-r--r-- | src/gallium/drivers/nv50/codegen/nv50_ir_ra.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
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); |