[llvm] r225989 - R600/SI: Use IMPLICIT_DEF and KILL when failing to spill VGPRs
Tom Stellard
thomas.stellard at amd.com
Wed Jan 14 07:42:34 PST 2015
Author: tstellar
Date: Wed Jan 14 09:42:34 2015
New Revision: 225989
URL: http://llvm.org/viewvc/llvm-project?rev=225989&view=rev
Log:
R600/SI: Use IMPLICIT_DEF and KILL when failing to spill VGPRs
This helps us avoid 'invalid register class for operand' verifier
errors.
Modified:
llvm/trunk/lib/Target/R600/SIInstrInfo.cpp
Modified: llvm/trunk/lib/Target/R600/SIInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIInstrInfo.cpp?rev=225989&r1=225988&r2=225989&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/SIInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/R600/SIInstrInfo.cpp Wed Jan 14 09:42:34 2015
@@ -488,7 +488,7 @@ void SIInstrInfo::storeRegToStackSlot(Ma
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(M
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);
}
}
More information about the llvm-commits
mailing list