diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-04-23 16:13:30 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-04-23 16:13:30 +0000 |
| commit | b21f9592bed0cb0510c5b6c7e831df774c1105a4 (patch) | |
| tree | e9fb9a13d696db36d3889d40e4c8ec39ee3ce11a /llvm/lib/Target | |
| parent | 8cd01aaa0f84a5fc9b95f2061bab0ab1ab543d47 (diff) | |
| download | bcm5719-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.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp | 4 |
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; |

