r600g/llvm: Fix handling of MASK_WRITE instructions
We can't delete MASK_WRITE instructions from the program, because this will cause instructions being masked by MASK_WRITE to be marked dead and then deleted in the dce pass.
This commit is contained in:
parent
77d2780cbc
commit
4da1fcacf1
|
@ -34,6 +34,7 @@ bool llvm::isPlaceHolderOpcode(unsigned opcode)
|
|||
case AMDIL::RETURN:
|
||||
case AMDIL::LOAD_INPUT:
|
||||
case AMDIL::LAST:
|
||||
case AMDIL::MASK_WRITE:
|
||||
case AMDIL::RESERVE_REG:
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -311,7 +311,8 @@ bool R600LowerInstructionsPass::runOnMachineFunction(MachineFunction &MF)
|
|||
MachineInstr * defInstr = MRI->getVRegDef(maskedRegister);
|
||||
MachineOperand * def = defInstr->findRegisterDefOperand(maskedRegister);
|
||||
def->addTargetFlag(MO_FLAG_MASK);
|
||||
break;
|
||||
/* Continue so the instruction is not erased */
|
||||
continue;
|
||||
}
|
||||
|
||||
case AMDIL::NEGATE_i32:
|
||||
|
|
Loading…
Reference in New Issue