Skip to content

Commit 5c1e8bb

Browse files
committed
Add IsLast
1 parent 91fba4c commit 5c1e8bb

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ void RISCVRegisterInfo::lowerSegmentSpillReload(MachineBasicBlock::iterator II,
440440
auto [LMulHandled, RegClass, Opcode] =
441441
getSpillReloadInfo(NumRegs - I, RegEncoding, IsSpill);
442442
auto [RegNumHandled, _] = RISCVVType::decodeVLMUL(LMulHandled);
443+
bool IsLast = I + RegNumHandled == NumRegs;
443444
if (PreHandledNum) {
444445
Register Step;
445446
// Optimize for constant VLEN.
@@ -458,23 +459,22 @@ void RISCVRegisterInfo::lowerSegmentSpillReload(MachineBasicBlock::iterator II,
458459
else {
459460
Step = MRI.createVirtualRegister(&RISCV::GPRRegClass);
460461
BuildMI(MBB, II, DL, TII->get(RISCV::SLLI), Step)
461-
.addReg(VLENB, getKillRegState(I + RegNumHandled == NumRegs))
462+
.addReg(VLENB, getKillRegState(IsLast))
462463
.addImm(ShiftAmount);
463464
}
464465
}
465466

466467
BuildMI(MBB, II, DL, TII->get(RISCV::ADD), NewBase)
467468
.addReg(Base, getKillRegState(I != 0 || IsBaseKill))
468-
.addReg(Step, getKillRegState(Step != VLENB ||
469-
I + RegNumHandled == NumRegs));
469+
.addReg(Step, getKillRegState(Step != VLENB || IsLast));
470470
Base = NewBase;
471471
}
472472

473473
MCRegister ActualReg = findVRegWithEncoding(RegClass, RegEncoding);
474474
MachineInstrBuilder MIB =
475475
BuildMI(MBB, II, DL, TII->get(Opcode))
476476
.addReg(ActualReg, getDefRegState(!IsSpill))
477-
.addReg(Base, getKillRegState(I + RegNumHandled == NumRegs))
477+
.addReg(Base, getKillRegState(IsLast))
478478
.addMemOperand(MF.getMachineMemOperand(OldMMO, OldMMO->getOffset(),
479479
VRegSize * RegNumHandled));
480480

0 commit comments

Comments
 (0)