nv50/ir/opt: don't copy-propagate cond MOVs or MOVs to other reg files

We've never encountered the latter on nvc0, but on nv50 we have moves
between GPRs and address regs.
This commit is contained in:
Christoph Bumiller
2012-03-22 11:51:52 +01:00
parent ca1fc2b864
commit 44e84d6f16
@@ -97,6 +97,10 @@ CopyPropagation::visit(BasicBlock *bb)
next = mov->next;
if (mov->op != OP_MOV || mov->fixed || !mov->getSrc(0)->asLValue())
continue;
if (mov->getPredicate())
continue;
if (mov->def(0).getFile() != mov->src(0).getFile())
continue;
si = mov->getSrc(0)->getInsn();
if (mov->getDef(0)->reg.data.id < 0 && si && si->op != OP_PHI) {
// propagate