diff --git a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp --- a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp @@ -1076,15 +1076,15 @@ } #ifndef NDEBUG -static bool allSGPRSpillsAreDead(const MachineFrameInfo &MFI, - Optional FramePointerSaveIndex, - Optional BasePointerSaveIndex) { +static bool allSGPRSpillsAreDead(const MachineFunction &MF) { + const MachineFrameInfo &MFI = MF.getFrameInfo(); + const SIMachineFunctionInfo *FuncInfo = MF.getInfo(); for (int I = MFI.getObjectIndexBegin(), E = MFI.getObjectIndexEnd(); I != E; ++I) { if (!MFI.isDeadObjectIndex(I) && MFI.getStackID(I) == TargetStackID::SGPRSpill && - ((FramePointerSaveIndex && I != FramePointerSaveIndex) || - (BasePointerSaveIndex && I != BasePointerSaveIndex))) { + (I != FuncInfo->FramePointerSaveIndex && + I != FuncInfo->BasePointerSaveIndex)) { return false; } } @@ -1111,7 +1111,7 @@ SIMachineFunctionInfo *FuncInfo = MF.getInfo(); FuncInfo->removeDeadFrameIndices(MFI); - assert(allSGPRSpillsAreDead(MFI, None, None) && + assert(allSGPRSpillsAreDead(MF) && "SGPR spill should have been removed in SILowerSGPRSpills"); // FIXME: The other checks should be redundant with allStackObjectsAreDead,