Skip to content

Commit 67b7946

Browse files
authored
[RISCV] Factor out getKillRegState in copyPhysReg (NFC) (#146454)
This is used multiple times in the function.
1 parent 89fe429 commit 67b7946

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -513,26 +513,24 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
513513
Register SrcReg, bool KillSrc,
514514
bool RenamableDest, bool RenamableSrc) const {
515515
const TargetRegisterInfo *TRI = STI.getRegisterInfo();
516+
unsigned KillFlag = getKillRegState(KillSrc);
516517

517518
if (RISCV::GPRRegClass.contains(DstReg, SrcReg)) {
518519
BuildMI(MBB, MBBI, DL, get(RISCV::ADDI), DstReg)
519-
.addReg(SrcReg,
520-
getKillRegState(KillSrc) | getRenamableRegState(RenamableSrc))
520+
.addReg(SrcReg, KillFlag | getRenamableRegState(RenamableSrc))
521521
.addImm(0);
522522
return;
523523
}
524524

525525
if (RISCV::GPRF16RegClass.contains(DstReg, SrcReg)) {
526526
BuildMI(MBB, MBBI, DL, get(RISCV::PseudoMV_FPR16INX), DstReg)
527-
.addReg(SrcReg,
528-
getKillRegState(KillSrc) | getRenamableRegState(RenamableSrc));
527+
.addReg(SrcReg, KillFlag | getRenamableRegState(RenamableSrc));
529528
return;
530529
}
531530

532531
if (RISCV::GPRF32RegClass.contains(DstReg, SrcReg)) {
533532
BuildMI(MBB, MBBI, DL, get(RISCV::PseudoMV_FPR32INX), DstReg)
534-
.addReg(SrcReg,
535-
getKillRegState(KillSrc) | getRenamableRegState(RenamableSrc));
533+
.addReg(SrcReg, KillFlag | getRenamableRegState(RenamableSrc));
536534
return;
537535
}
538536

@@ -547,11 +545,11 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
547545
// Emit an ADDI for both parts of GPRPair.
548546
BuildMI(MBB, MBBI, DL, get(RISCV::ADDI),
549547
TRI->getSubReg(DstReg, RISCV::sub_gpr_even))
550-
.addReg(EvenReg, getKillRegState(KillSrc))
548+
.addReg(EvenReg, KillFlag)
551549
.addImm(0);
552550
BuildMI(MBB, MBBI, DL, get(RISCV::ADDI),
553551
TRI->getSubReg(DstReg, RISCV::sub_gpr_odd))
554-
.addReg(OddReg, getKillRegState(KillSrc))
552+
.addReg(OddReg, KillFlag)
555553
.addImm(0);
556554
return;
557555
}
@@ -581,52 +579,52 @@ void RISCVInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
581579
Opc = RISCV::FSGNJ_S;
582580
}
583581
BuildMI(MBB, MBBI, DL, get(Opc), DstReg)
584-
.addReg(SrcReg, getKillRegState(KillSrc))
585-
.addReg(SrcReg, getKillRegState(KillSrc));
582+
.addReg(SrcReg, KillFlag)
583+
.addReg(SrcReg, KillFlag);
586584
return;
587585
}
588586

589587
if (RISCV::FPR32RegClass.contains(DstReg, SrcReg)) {
590588
BuildMI(MBB, MBBI, DL, get(RISCV::FSGNJ_S), DstReg)
591-
.addReg(SrcReg, getKillRegState(KillSrc))
592-
.addReg(SrcReg, getKillRegState(KillSrc));
589+
.addReg(SrcReg, KillFlag)
590+
.addReg(SrcReg, KillFlag);
593591
return;
594592
}
595593

596594
if (RISCV::FPR64RegClass.contains(DstReg, SrcReg)) {
597595
BuildMI(MBB, MBBI, DL, get(RISCV::FSGNJ_D), DstReg)
598-
.addReg(SrcReg, getKillRegState(KillSrc))
599-
.addReg(SrcReg, getKillRegState(KillSrc));
596+
.addReg(SrcReg, KillFlag)
597+
.addReg(SrcReg, KillFlag);
600598
return;
601599
}
602600

603601
if (RISCV::FPR32RegClass.contains(DstReg) &&
604602
RISCV::GPRRegClass.contains(SrcReg)) {
605603
BuildMI(MBB, MBBI, DL, get(RISCV::FMV_W_X), DstReg)
606-
.addReg(SrcReg, getKillRegState(KillSrc));
604+
.addReg(SrcReg, KillFlag);
607605
return;
608606
}
609607

610608
if (RISCV::GPRRegClass.contains(DstReg) &&
611609
RISCV::FPR32RegClass.contains(SrcReg)) {
612610
BuildMI(MBB, MBBI, DL, get(RISCV::FMV_X_W), DstReg)
613-
.addReg(SrcReg, getKillRegState(KillSrc));
611+
.addReg(SrcReg, KillFlag);
614612
return;
615613
}
616614

617615
if (RISCV::FPR64RegClass.contains(DstReg) &&
618616
RISCV::GPRRegClass.contains(SrcReg)) {
619617
assert(STI.getXLen() == 64 && "Unexpected GPR size");
620618
BuildMI(MBB, MBBI, DL, get(RISCV::FMV_D_X), DstReg)
621-
.addReg(SrcReg, getKillRegState(KillSrc));
619+
.addReg(SrcReg, KillFlag);
622620
return;
623621
}
624622

625623
if (RISCV::GPRRegClass.contains(DstReg) &&
626624
RISCV::FPR64RegClass.contains(SrcReg)) {
627625
assert(STI.getXLen() == 64 && "Unexpected GPR size");
628626
BuildMI(MBB, MBBI, DL, get(RISCV::FMV_X_D), DstReg)
629-
.addReg(SrcReg, getKillRegState(KillSrc));
627+
.addReg(SrcReg, KillFlag);
630628
return;
631629
}
632630

0 commit comments

Comments
 (0)