Skip to content

Commit cb113a7

Browse files
authored
RegisterCoalescer: Avoid repeated getRegClass on all paths (#129490)
1 parent 1891281 commit cb113a7

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

llvm/lib/CodeGen/RegisterCoalescer.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ bool CoalescerPair::setRegisters(const MachineInstr *MI) {
478478
}
479479

480480
const MachineRegisterInfo &MRI = MI->getMF()->getRegInfo();
481+
const TargetRegisterClass *SrcRC = MRI.getRegClass(Src);
481482

482483
if (Dst.isPhysical()) {
483484
// Eliminate DstSub on a physreg.
@@ -490,15 +491,14 @@ bool CoalescerPair::setRegisters(const MachineInstr *MI) {
490491

491492
// Eliminate SrcSub by picking a corresponding Dst superregister.
492493
if (SrcSub) {
493-
Dst = TRI.getMatchingSuperReg(Dst, SrcSub, MRI.getRegClass(Src));
494+
Dst = TRI.getMatchingSuperReg(Dst, SrcSub, SrcRC);
494495
if (!Dst)
495496
return false;
496-
} else if (!MRI.getRegClass(Src)->contains(Dst)) {
497+
} else if (!SrcRC->contains(Dst)) {
497498
return false;
498499
}
499500
} else {
500501
// Both registers are virtual.
501-
const TargetRegisterClass *SrcRC = MRI.getRegClass(Src);
502502
const TargetRegisterClass *DstRC = MRI.getRegClass(Dst);
503503

504504
// Both registers have subreg indices.

0 commit comments

Comments
 (0)