From: Matt Arsenault Date: Tue, 27 Mar 2018 23:26:59 +0000 (+0000) Subject: AMDGPU: Really implement getFrameRegister X-Git-Tag: llvmorg-7.0.0-rc1~9499 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd49eccca1d731b6b7e421d69611090cd7ad8a2b;p=platform%2Fupstream%2Fllvm.git AMDGPU: Really implement getFrameRegister Currently this seems to only really be used for debug info. llvm-svn: 328677 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp index 376be7d..242b97b 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp @@ -82,5 +82,6 @@ const uint32_t *SIRegisterInfo::getCallPreservedMask(const MachineFunction &MF, } unsigned SIRegisterInfo::getFrameRegister(const MachineFunction &MF) const { - return AMDGPU::NoRegister; + const SIMachineFunctionInfo *FuncInfo = MF.getInfo(); + return FuncInfo->getFrameOffsetReg(); } diff --git a/llvm/test/DebugInfo/AMDGPU/variable-locations.ll b/llvm/test/DebugInfo/AMDGPU/variable-locations.ll index 692769b..66885f2 100644 --- a/llvm/test/DebugInfo/AMDGPU/variable-locations.ll +++ b/llvm/test/DebugInfo/AMDGPU/variable-locations.ll @@ -31,6 +31,9 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) ; CHECK-NEXT: DW_AT_location [DW_FORM_block1] (DW_OP_addr 0x0) @GlobB = common addrspace(1) global i32 0, align 4, !dbg !6 +; CHECK: {{.*}}DW_TAG_subprogram +; CHECK: DW_AT_frame_base [DW_FORM_block1] (DW_OP_reg9 SGPR9) + define amdgpu_kernel void @kernel1( ; CHECK: {{.*}}DW_TAG_formal_parameter ; CHECK-NEXT: DW_AT_location [DW_FORM_block1] (DW_OP_fbreg +4, DW_OP_constu 0x1, DW_OP_swap, DW_OP_xderef)