nv50/ir/ra: Fix live set propagation in the secondary passes of buildLiveSets().

This commit is contained in:
Francisco Jerez 2011-12-27 12:43:27 +01:00 committed by Christoph Bumiller
parent 2fc014f8c0
commit f4dbdcbfcf

View file

@ -466,10 +466,10 @@ RegAlloc::buildLiveSets(BasicBlock *bb)
if (bn->cfg.visit(sequence)) if (bn->cfg.visit(sequence))
if (!buildLiveSets(bn)) if (!buildLiveSets(bn))
return false; return false;
if (n++ == 0) if (n++ || bb->liveSet.marker)
bb->liveSet = bn->liveSet;
else
bb->liveSet |= bn->liveSet; bb->liveSet |= bn->liveSet;
else
bb->liveSet = bn->liveSet;
} }
if (!n && !bb->liveSet.marker) if (!n && !bb->liveSet.marker)
bb->liveSet.fill(0); bb->liveSet.fill(0);