summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-04-23 16:13:30 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-04-23 16:13:30 +0000
commitb21f9592bed0cb0510c5b6c7e831df774c1105a4 (patch)
treee9fb9a13d696db36d3889d40e4c8ec39ee3ce11a /llvm/lib/Target
parent8cd01aaa0f84a5fc9b95f2061bab0ab1ab543d47 (diff)
downloadbcm5719-llvm-b21f9592bed0cb0510c5b6c7e831df774c1105a4.tar.gz
bcm5719-llvm-b21f9592bed0cb0510c5b6c7e831df774c1105a4.zip
AMDGPU: Move a flawed assert when spilling SGPRs
It's possible to validly spill the frame offset register in a call sequence to a VGPR. There are definitely issues with SGPR spilling to memory, so move the assert later. llvm-svn: 330612
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/AMDGPU/SIInstrInfo.cpp4
-rw-r--r--llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index f368d44a814..24dc5156f81 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -827,10 +827,6 @@ void SIInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
MachineFrameInfo &FrameInfo = MF->getFrameInfo();
DebugLoc DL = MBB.findDebugLoc(MI);
- assert(SrcReg != MFI->getStackPtrOffsetReg() &&
- SrcReg != MFI->getFrameOffsetReg() &&
- SrcReg != MFI->getScratchWaveOffsetReg());
-
unsigned Size = FrameInfo.getObjectSize(FrameIndex);
unsigned Align = FrameInfo.getObjectAlignment(FrameIndex);
MachinePointerInfo PtrInfo
diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
index 4583d2d56ec..6a3f00f8d1e 100644
--- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -658,6 +658,10 @@ bool SIRegisterInfo::spillSGPR(MachineBasicBlock::iterator MI,
if (SpillToSMEM && OnlyToVGPR)
return false;
+ assert(SpillToVGPR || (SuperReg != MFI->getStackPtrOffsetReg() &&
+ SuperReg != MFI->getFrameOffsetReg() &&
+ SuperReg != MFI->getScratchWaveOffsetReg()));
+
assert(SuperReg != AMDGPU::M0 && "m0 should never spill");
unsigned OffsetReg = AMDGPU::M0;
OpenPOWER on IntegriCloud