Skip to content

Commit bf31a1e

Browse files
committed
Update IsKill state
1 parent 00d9d6c commit bf31a1e

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,14 +458,15 @@ void RISCVRegisterInfo::lowerSegmentSpillReload(MachineBasicBlock::iterator II,
458458
else {
459459
Step = MRI.createVirtualRegister(&RISCV::GPRRegClass);
460460
BuildMI(MBB, II, DL, TII->get(RISCV::SLLI), Step)
461-
.addReg(VLENB)
461+
.addReg(VLENB, getKillRegState(I + RegNumHandled == NumRegs))
462462
.addImm(ShiftAmount);
463463
}
464464
}
465465

466466
BuildMI(MBB, II, DL, TII->get(RISCV::ADD), NewBase)
467467
.addReg(Base, getKillRegState(I != 0 || IsBaseKill))
468-
.addReg(Step, getKillRegState(I + RegNumHandled == NumRegs));
468+
.addReg(Step, getKillRegState(Step != VLENB ||
469+
I + RegNumHandled == NumRegs));
469470
Base = NewBase;
470471
}
471472

llvm/test/CodeGen/RISCV/rvv/zvlsseg-spill.mir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ body: |
4141
; CHECK-NEXT: $x11 = ADDI $x2, 16
4242
; CHECK-NEXT: $v7 = VL1RE8_V $x11 :: (load (<vscale x 1 x s64>) from %stack.0)
4343
; CHECK-NEXT: $x12 = PseudoReadVLENB
44-
; CHECK-NEXT: $x11 = ADD killed $x11, $x12
44+
; CHECK-NEXT: $x11 = ADD killed $x11, killed $x12
4545
; CHECK-NEXT: $v8m4 = VL4RE8_V $x11 :: (load (<vscale x 1 x s256>) from %stack.0, align 8)
4646
; CHECK-NEXT: $x12 = SLLI killed $x12, 2
4747
; CHECK-NEXT: $x11 = ADD killed $x11, killed $x12
@@ -85,7 +85,7 @@ body: |
8585
; CHECK-NEXT: $x11 = ADDI $x2, 16
8686
; CHECK-NEXT: VS1R_V $v1, $x11, implicit $v1_v2_v3_v4_v5_v6_v7 :: (store (<vscale x 1 x s64>) into %stack.0)
8787
; CHECK-NEXT: $x12 = PseudoReadVLENB
88-
; CHECK-NEXT: $x11 = ADD killed $x11, $x12
88+
; CHECK-NEXT: $x11 = ADD killed $x11, killed $x12
8989
; CHECK-NEXT: VS2R_V $v2m2, $x11, implicit $v1_v2_v3_v4_v5_v6_v7 :: (store (<vscale x 1 x s128>) into %stack.0, align 8)
9090
; CHECK-NEXT: $x12 = SLLI killed $x12, 1
9191
; CHECK-NEXT: $x11 = ADD killed $x11, killed $x12

0 commit comments

Comments
 (0)