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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user