@@ -60,7 +60,7 @@ TargetInstrInfo::~TargetInstrInfo() = default;
6060
6161const TargetRegisterClass *
6262TargetInstrInfo::getRegClass (const MCInstrDesc &MCID, unsigned OpNum,
63- const TargetRegisterInfo *TRI ) const {
63+ const TargetRegisterInfo * /* RemoveMe */ ) const {
6464 if (OpNum >= MCID.getNumOperands ())
6565 return nullptr ;
6666
@@ -69,14 +69,14 @@ TargetInstrInfo::getRegClass(const MCInstrDesc &MCID, unsigned OpNum,
6969
7070 // TODO: Remove isLookupPtrRegClass in favor of isLookupRegClassByHwMode
7171 if (OpInfo.isLookupPtrRegClass ())
72- return TRI-> getPointerRegClass (RegClass);
72+ return TRI. getPointerRegClass (RegClass);
7373
7474 // Instructions like INSERT_SUBREG do not have fixed register classes.
7575 if (RegClass < 0 )
7676 return nullptr ;
7777
7878 // Otherwise just look it up normally.
79- return TRI-> getRegClass (RegClass);
79+ return TRI. getRegClass (RegClass);
8080}
8181
8282// / insertNoop - Insert a noop into the instruction stream at the specified
@@ -223,13 +223,11 @@ MachineInstr *TargetInstrInfo::commuteInstructionImpl(MachineInstr &MI,
223223 // %1.sub = INST %1.sub(tied), %0.sub, implicit-def %1
224224 SmallVector<unsigned > UpdateImplicitDefIdx;
225225 if (HasDef && MI.hasImplicitDef ()) {
226- const TargetRegisterInfo *TRI =
227- MI.getMF ()->getSubtarget ().getRegisterInfo ();
228226 for (auto [OpNo, MO] : llvm::enumerate (MI.implicit_operands ())) {
229227 Register ImplReg = MO.getReg ();
230228 if ((ImplReg.isVirtual () && ImplReg == Reg0) ||
231229 (ImplReg.isPhysical () && Reg0.isPhysical () &&
232- TRI-> isSubRegisterEq (ImplReg, Reg0)))
230+ TRI. isSubRegisterEq (ImplReg, Reg0)))
233231 UpdateImplicitDefIdx.push_back (OpNo + MI.getNumExplicitOperands ());
234232 }
235233 }
@@ -425,37 +423,35 @@ bool TargetInstrInfo::getStackSlotRange(const TargetRegisterClass *RC,
425423 unsigned SubIdx, unsigned &Size,
426424 unsigned &Offset,
427425 const MachineFunction &MF) const {
428- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
429426 if (!SubIdx) {
430- Size = TRI-> getSpillSize (*RC);
427+ Size = TRI. getSpillSize (*RC);
431428 Offset = 0 ;
432429 return true ;
433430 }
434- unsigned BitSize = TRI-> getSubRegIdxSize (SubIdx);
431+ unsigned BitSize = TRI. getSubRegIdxSize (SubIdx);
435432 // Convert bit size to byte size.
436433 if (BitSize % 8 )
437434 return false ;
438435
439- int BitOffset = TRI-> getSubRegIdxOffset (SubIdx);
436+ int BitOffset = TRI. getSubRegIdxOffset (SubIdx);
440437 if (BitOffset < 0 || BitOffset % 8 )
441438 return false ;
442439
443440 Size = BitSize / 8 ;
444441 Offset = (unsigned )BitOffset / 8 ;
445442
446- assert (TRI-> getSpillSize (*RC) >= (Offset + Size) && " bad subregister range" );
443+ assert (TRI. getSpillSize (*RC) >= (Offset + Size) && " bad subregister range" );
447444
448445 if (!MF.getDataLayout ().isLittleEndian ()) {
449- Offset = TRI-> getSpillSize (*RC) - (Offset + Size);
446+ Offset = TRI. getSpillSize (*RC) - (Offset + Size);
450447 }
451448 return true ;
452449}
453450
454- void TargetInstrInfo::reMaterialize (MachineBasicBlock &MBB,
455- MachineBasicBlock::iterator I,
456- Register DestReg, unsigned SubIdx,
457- const MachineInstr &Orig,
458- const TargetRegisterInfo &TRI) const {
451+ void TargetInstrInfo::reMaterialize (
452+ MachineBasicBlock &MBB, MachineBasicBlock::iterator I, Register DestReg,
453+ unsigned SubIdx, const MachineInstr &Orig,
454+ const TargetRegisterInfo & /* Remove me*/ ) const {
459455 MachineInstr *MI = MBB.getParent ()->CloneMachineInstr (&Orig);
460456 MI->substituteRegister (MI->getOperand (0 ).getReg (), DestReg, SubIdx, TRI);
461457 MBB.insert (I, MI);
@@ -726,7 +722,6 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
726722 // actual load size is.
727723 int64_t MemSize = 0 ;
728724 const MachineFrameInfo &MFI = MF.getFrameInfo ();
729- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
730725
731726 if (Flags & MachineMemOperand::MOStore) {
732727 MemSize = MFI.getObjectSize (FI);
@@ -735,7 +730,7 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
735730 int64_t OpSize = MFI.getObjectSize (FI);
736731
737732 if (auto SubReg = MI.getOperand (OpIdx).getSubReg ()) {
738- unsigned SubRegSize = TRI-> getSubRegIdxSize (SubReg);
733+ unsigned SubRegSize = TRI. getSubRegIdxSize (SubReg);
739734 if (SubRegSize > 0 && !(SubRegSize % 8 ))
740735 OpSize = SubRegSize / 8 ;
741736 }
@@ -800,11 +795,11 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
800795 // code.
801796 BuildMI (*MBB, Pos, MI.getDebugLoc (), get (TargetOpcode::KILL)).add (MO);
802797 } else {
803- storeRegToStackSlot (*MBB, Pos, MO.getReg (), MO.isKill (), FI, RC, TRI,
798+ storeRegToStackSlot (*MBB, Pos, MO.getReg (), MO.isKill (), FI, RC, & TRI,
804799 Register ());
805800 }
806801 } else
807- loadRegFromStackSlot (*MBB, Pos, MO.getReg (), FI, RC, TRI, Register ());
802+ loadRegFromStackSlot (*MBB, Pos, MO.getReg (), FI, RC, & TRI, Register ());
808803
809804 return &*--Pos;
810805}
@@ -880,8 +875,8 @@ static void transferImplicitOperands(MachineInstr *MI,
880875 }
881876}
882877
883- void TargetInstrInfo::lowerCopy (MachineInstr *MI,
884- const TargetRegisterInfo *TRI ) const {
878+ void TargetInstrInfo::lowerCopy (
879+ MachineInstr *MI, const TargetRegisterInfo * /* Remove me */ ) const {
885880 if (MI->allDefsAreDead ()) {
886881 MI->setDesc (get (TargetOpcode::KILL));
887882 return ;
@@ -911,7 +906,7 @@ void TargetInstrInfo::lowerCopy(MachineInstr *MI,
911906 SrcMO.getReg ().isPhysical () ? SrcMO.isRenamable () : false );
912907
913908 if (MI->getNumOperands () > 2 )
914- transferImplicitOperands (MI, TRI);
909+ transferImplicitOperands (MI, & TRI);
915910 MI->eraseFromParent ();
916911}
917912
@@ -1327,8 +1322,7 @@ void TargetInstrInfo::reassociateOps(
13271322 MachineFunction *MF = Root.getMF ();
13281323 MachineRegisterInfo &MRI = MF->getRegInfo ();
13291324 const TargetInstrInfo *TII = MF->getSubtarget ().getInstrInfo ();
1330- const TargetRegisterInfo *TRI = MF->getSubtarget ().getRegisterInfo ();
1331- const TargetRegisterClass *RC = Root.getRegClassConstraint (0 , TII, TRI);
1325+ const TargetRegisterClass *RC = Root.getRegClassConstraint (0 , TII, &TRI);
13321326
13331327 MachineOperand &OpA = Prev.getOperand (OperandIndices[1 ]);
13341328 MachineOperand &OpB = Root.getOperand (OperandIndices[2 ]);
@@ -1704,8 +1698,7 @@ bool TargetInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
17041698 // stack slot reference to depend on the instruction that does the
17051699 // modification.
17061700 const TargetLowering &TLI = *MF.getSubtarget ().getTargetLowering ();
1707- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
1708- return MI.modifiesRegister (TLI.getStackPointerRegisterToSaveRestore (), TRI);
1701+ return MI.modifiesRegister (TLI.getStackPointerRegisterToSaveRestore (), &TRI);
17091702}
17101703
17111704// Provide a global flag for disabling the PreRA hazard recognizer that targets
@@ -1738,11 +1731,11 @@ CreateTargetPostRAHazardRecognizer(const InstrItineraryData *II,
17381731// Default implementation of getMemOperandWithOffset.
17391732bool TargetInstrInfo::getMemOperandWithOffset (
17401733 const MachineInstr &MI, const MachineOperand *&BaseOp, int64_t &Offset,
1741- bool &OffsetIsScalable, const TargetRegisterInfo *TRI ) const {
1734+ bool &OffsetIsScalable, const TargetRegisterInfo * /* RemoveMe */ ) const {
17421735 SmallVector<const MachineOperand *, 4 > BaseOps;
17431736 LocationSize Width = LocationSize::precise (0 );
17441737 if (!getMemOperandsWithOffsetWidth (MI, BaseOps, Offset, OffsetIsScalable,
1745- Width, TRI) ||
1738+ Width, & TRI) ||
17461739 BaseOps.size () != 1 )
17471740 return false ;
17481741 BaseOp = BaseOps.front ();
@@ -1863,7 +1856,6 @@ std::optional<ParamLoadedValue>
18631856TargetInstrInfo::describeLoadedValue (const MachineInstr &MI,
18641857 Register Reg) const {
18651858 const MachineFunction *MF = MI.getMF ();
1866- const TargetRegisterInfo *TRI = MF->getSubtarget ().getRegisterInfo ();
18671859 DIExpression *Expr = DIExpression::get (MF->getFunction ().getContext (), {});
18681860 int64_t Offset;
18691861 bool OffsetIsScalable;
@@ -1894,7 +1886,6 @@ TargetInstrInfo::describeLoadedValue(const MachineInstr &MI,
18941886 // Only describe memory which provably does not escape the function. As
18951887 // described in llvm.org/PR43343, escaped memory may be clobbered by the
18961888 // callee (or by another thread).
1897- const auto &TII = MF->getSubtarget ().getInstrInfo ();
18981889 const MachineFrameInfo &MFI = MF->getFrameInfo ();
18991890 const MachineMemOperand *MMO = MI.memoperands ()[0 ];
19001891 const PseudoSourceValue *PSV = MMO->getPseudoValue ();
@@ -1905,8 +1896,7 @@ TargetInstrInfo::describeLoadedValue(const MachineInstr &MI,
19051896 return std::nullopt ;
19061897
19071898 const MachineOperand *BaseOp;
1908- if (!TII->getMemOperandWithOffset (MI, BaseOp, Offset, OffsetIsScalable,
1909- TRI))
1899+ if (!getMemOperandWithOffset (MI, BaseOp, Offset, OffsetIsScalable, &TRI))
19101900 return std::nullopt ;
19111901
19121902 // FIXME: Scalable offsets are not yet handled in the offset code below.
@@ -2045,7 +2035,7 @@ bool TargetInstrInfo::getInsertSubregInputs(
20452035// Returns a MIRPrinter comment for this machine operand.
20462036std::string TargetInstrInfo::createMIROperandComment (
20472037 const MachineInstr &MI, const MachineOperand &Op, unsigned OpIdx,
2048- const TargetRegisterInfo *TRI ) const {
2038+ const TargetRegisterInfo * /* RemoveMe */ ) const {
20492039
20502040 if (!MI.isInlineAsm ())
20512041 return " " ;
@@ -2078,12 +2068,8 @@ std::string TargetInstrInfo::createMIROperandComment(
20782068 OS << F.getKindName ();
20792069
20802070 unsigned RCID;
2081- if (!F.isImmKind () && !F.isMemKind () && F.hasRegClassConstraint (RCID)) {
2082- if (TRI) {
2083- OS << ' :' << TRI->getRegClassName (TRI->getRegClass (RCID));
2084- } else
2085- OS << " :RC" << RCID;
2086- }
2071+ if (!F.isImmKind () && !F.isMemKind () && F.hasRegClassConstraint (RCID))
2072+ OS << ' :' << TRI.getRegClassName (TRI.getRegClass (RCID));
20872073
20882074 if (F.isMemKind ()) {
20892075 InlineAsm::ConstraintCode MCID = F.getMemoryConstraintID ();
0 commit comments