forked from OSchip/llvm-project
R600/SI: Use IMPLICIT_DEF and KILL when failing to spill VGPRs
This helps us avoid 'invalid register class for operand' verifier errors. llvm-svn: 225989
This commit is contained in:
parent
42fb60e1a7
commit
0febe685ed
llvm/lib/Target/R600
|
@ -488,7 +488,7 @@ void SIInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
|
|||
LLVMContext &Ctx = MF->getFunction()->getContext();
|
||||
Ctx.emitError("SIInstrInfo::storeRegToStackSlot - Do not know how to"
|
||||
" spill register");
|
||||
BuildMI(MBB, MI, DL, get(AMDGPU::V_MOV_B32_e32), AMDGPU::VGPR0)
|
||||
BuildMI(MBB, MI, DL, get(AMDGPU::KILL))
|
||||
.addReg(SrcReg);
|
||||
}
|
||||
}
|
||||
|
@ -535,8 +535,7 @@ void SIInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
|
|||
LLVMContext &Ctx = MF->getFunction()->getContext();
|
||||
Ctx.emitError("SIInstrInfo::loadRegFromStackSlot - Do not know how to"
|
||||
" restore register");
|
||||
BuildMI(MBB, MI, DL, get(AMDGPU::V_MOV_B32_e32), DestReg)
|
||||
.addReg(AMDGPU::VGPR0);
|
||||
BuildMI(MBB, MI, DL, get(AMDGPU::IMPLICIT_DEF), DestReg);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue