From: Tom Stellard Date: Mon, 2 May 2016 19:37:56 +0000 (+0000) Subject: AMDGPU/SI: Set the kill flag on temp VGPRs used to restore SGPRs from scratch X-Git-Tag: llvmorg-3.9.0-rc1~7227 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce5e994887f7700da3b22bd1b027f52092e5cabb;p=platform%2Fupstream%2Fllvm.git AMDGPU/SI: Set the kill flag on temp VGPRs used to restore SGPRs from scratch Summary: When we restore an SGPR value from scratch, we first load it into a temporary VGPR and then use v_readlane_b32 to copy the value from the VGPR back into an SGPR. We weren't setting the kill flag on the VGPR in the v_readlane_b32 instruction, so the register scavenger wasn't able to re-use this temp value later. I wasn't able to create a lit test for this. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19744 llvm-svn: 268287 --- diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp index d0ba8e6..9012b31 100644 --- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp @@ -590,7 +590,7 @@ void SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI, .addMemOperand(MMO); BuildMI(*MBB, MI, DL, TII->getMCOpcodeFromPseudo(AMDGPU::V_READLANE_B32), SubReg) - .addReg(TmpReg) + .addReg(TmpReg, RegState::Kill) .addImm(0) .addReg(MI->getOperand(0).getReg(), RegState::ImplicitDefine); }