[llvm] f008148 - [AMDGPU] Fix undef uses miscounted as kills in SIOptimizeVGPRLiveRange (#218342)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 12:17:17 PDT 2026
Author: Arseniy Obolenskiy
Date: 2026-08-24T19:17:11Z
New Revision: f0081485f72e8b9fbb25deda5b7a0c627e8c8f4f
URL: https://github.com/llvm/llvm-project/commit/f0081485f72e8b9fbb25deda5b7a0c627e8c8f4f
DIFF: https://github.com/llvm/llvm-project/commit/f0081485f72e8b9fbb25deda5b7a0c627e8c8f4f.diff
LOG: [AMDGPU] Fix undef uses miscounted as kills in SIOptimizeVGPRLiveRange (#218342)
Added:
Modified:
llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
llvm/test/CodeGen/AMDGPU/si-opt-vgpr-liverange-undef-use-livevars.mir
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp b/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
index bd51ccc2dea78..b682b439a241e 100644
--- a/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
+++ b/llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
@@ -220,7 +220,8 @@ void SIOptimizeVGPRLiveRange::findNonPHIUsesInBlock(
Register Reg, MachineBasicBlock *MBB,
SmallVectorImpl<MachineInstr *> &Uses) const {
for (auto &UseMI : MRI->use_nodbg_instructions(Reg)) {
- if (UseMI.getParent() == MBB && !UseMI.isPHI())
+ if (UseMI.getParent() == MBB && !UseMI.isPHI() &&
+ UseMI.readsVirtualRegister(Reg))
Uses.push_back(&UseMI);
}
}
diff --git a/llvm/test/CodeGen/AMDGPU/si-opt-vgpr-liverange-undef-use-livevars.mir b/llvm/test/CodeGen/AMDGPU/si-opt-vgpr-liverange-undef-use-livevars.mir
index f665efba1e1a3..23484ddef17ab 100644
--- a/llvm/test/CodeGen/AMDGPU/si-opt-vgpr-liverange-undef-use-livevars.mir
+++ b/llvm/test/CodeGen/AMDGPU/si-opt-vgpr-liverange-undef-use-livevars.mir
@@ -18,7 +18,7 @@ body: |
; CHECK-NEXT: bb.1:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)
; CHECK-NEXT: {{ $}}
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY [[REG_SEQUENCE]]
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY killed [[REG_SEQUENCE]]
; CHECK-NEXT: [[SI_IF:%[0-9]+]]:sreg_64 = SI_IF killed [[V_CMP_NE_U32_e64_]], %bb.3, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
; CHECK-NEXT: S_BRANCH %bb.2
; CHECK-NEXT: {{ $}}
More information about the llvm-commits
mailing list