@@ -60,20 +60,20 @@ 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
6767 short RegClass = MCID.operands ()[OpNum].RegClass ;
6868 if (MCID.operands ()[OpNum].isLookupPtrRegClass ())
69- return TRI-> getPointerRegClass (RegClass);
69+ return TRI. getPointerRegClass (RegClass);
7070
7171 // Instructions like INSERT_SUBREG do not have fixed register classes.
7272 if (RegClass < 0 )
7373 return nullptr ;
7474
7575 // Otherwise just look it up normally.
76- return TRI-> getRegClass (RegClass);
76+ return TRI. getRegClass (RegClass);
7777}
7878
7979// / insertNoop - Insert a noop into the instruction stream at the specified
@@ -220,13 +220,11 @@ MachineInstr *TargetInstrInfo::commuteInstructionImpl(MachineInstr &MI,
220220 // %1.sub = INST %1.sub(tied), %0.sub, implicit-def %1
221221 SmallVector<unsigned > UpdateImplicitDefIdx;
222222 if (HasDef && MI.hasImplicitDef ()) {
223- const TargetRegisterInfo *TRI =
224- MI.getMF ()->getSubtarget ().getRegisterInfo ();
225223 for (auto [OpNo, MO] : llvm::enumerate (MI.implicit_operands ())) {
226224 Register ImplReg = MO.getReg ();
227225 if ((ImplReg.isVirtual () && ImplReg == Reg0) ||
228226 (ImplReg.isPhysical () && Reg0.isPhysical () &&
229- TRI-> isSubRegisterEq (ImplReg, Reg0)))
227+ TRI. isSubRegisterEq (ImplReg, Reg0)))
230228 UpdateImplicitDefIdx.push_back (OpNo + MI.getNumExplicitOperands ());
231229 }
232230 }
@@ -422,37 +420,35 @@ bool TargetInstrInfo::getStackSlotRange(const TargetRegisterClass *RC,
422420 unsigned SubIdx, unsigned &Size,
423421 unsigned &Offset,
424422 const MachineFunction &MF) const {
425- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
426423 if (!SubIdx) {
427- Size = TRI-> getSpillSize (*RC);
424+ Size = TRI. getSpillSize (*RC);
428425 Offset = 0 ;
429426 return true ;
430427 }
431- unsigned BitSize = TRI-> getSubRegIdxSize (SubIdx);
428+ unsigned BitSize = TRI. getSubRegIdxSize (SubIdx);
432429 // Convert bit size to byte size.
433430 if (BitSize % 8 )
434431 return false ;
435432
436- int BitOffset = TRI-> getSubRegIdxOffset (SubIdx);
433+ int BitOffset = TRI. getSubRegIdxOffset (SubIdx);
437434 if (BitOffset < 0 || BitOffset % 8 )
438435 return false ;
439436
440437 Size = BitSize / 8 ;
441438 Offset = (unsigned )BitOffset / 8 ;
442439
443- assert (TRI-> getSpillSize (*RC) >= (Offset + Size) && " bad subregister range" );
440+ assert (TRI. getSpillSize (*RC) >= (Offset + Size) && " bad subregister range" );
444441
445442 if (!MF.getDataLayout ().isLittleEndian ()) {
446- Offset = TRI-> getSpillSize (*RC) - (Offset + Size);
443+ Offset = TRI. getSpillSize (*RC) - (Offset + Size);
447444 }
448445 return true ;
449446}
450447
451- void TargetInstrInfo::reMaterialize (MachineBasicBlock &MBB,
452- MachineBasicBlock::iterator I,
453- Register DestReg, unsigned SubIdx,
454- const MachineInstr &Orig,
455- const TargetRegisterInfo &TRI) const {
448+ void TargetInstrInfo::reMaterialize (
449+ MachineBasicBlock &MBB, MachineBasicBlock::iterator I, Register DestReg,
450+ unsigned SubIdx, const MachineInstr &Orig,
451+ const TargetRegisterInfo & /* Remove me*/ ) const {
456452 MachineInstr *MI = MBB.getParent ()->CloneMachineInstr (&Orig);
457453 MI->substituteRegister (MI->getOperand (0 ).getReg (), DestReg, SubIdx, TRI);
458454 MBB.insert (I, MI);
@@ -723,7 +719,6 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
723719 // actual load size is.
724720 int64_t MemSize = 0 ;
725721 const MachineFrameInfo &MFI = MF.getFrameInfo ();
726- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
727722
728723 if (Flags & MachineMemOperand::MOStore) {
729724 MemSize = MFI.getObjectSize (FI);
@@ -732,7 +727,7 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
732727 int64_t OpSize = MFI.getObjectSize (FI);
733728
734729 if (auto SubReg = MI.getOperand (OpIdx).getSubReg ()) {
735- unsigned SubRegSize = TRI-> getSubRegIdxSize (SubReg);
730+ unsigned SubRegSize = TRI. getSubRegIdxSize (SubReg);
736731 if (SubRegSize > 0 && !(SubRegSize % 8 ))
737732 OpSize = SubRegSize / 8 ;
738733 }
@@ -797,11 +792,11 @@ MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
797792 // code.
798793 BuildMI (*MBB, Pos, MI.getDebugLoc (), get (TargetOpcode::KILL)).add (MO);
799794 } else {
800- storeRegToStackSlot (*MBB, Pos, MO.getReg (), MO.isKill (), FI, RC, TRI,
795+ storeRegToStackSlot (*MBB, Pos, MO.getReg (), MO.isKill (), FI, RC, & TRI,
801796 Register ());
802797 }
803798 } else
804- loadRegFromStackSlot (*MBB, Pos, MO.getReg (), FI, RC, TRI, Register ());
799+ loadRegFromStackSlot (*MBB, Pos, MO.getReg (), FI, RC, & TRI, Register ());
805800
806801 return &*--Pos;
807802}
@@ -877,8 +872,8 @@ static void transferImplicitOperands(MachineInstr *MI,
877872 }
878873}
879874
880- void TargetInstrInfo::lowerCopy (MachineInstr *MI,
881- const TargetRegisterInfo *TRI ) const {
875+ void TargetInstrInfo::lowerCopy (
876+ MachineInstr *MI, const TargetRegisterInfo * /* Remove me */ ) const {
882877 if (MI->allDefsAreDead ()) {
883878 MI->setDesc (get (TargetOpcode::KILL));
884879 return ;
@@ -908,7 +903,7 @@ void TargetInstrInfo::lowerCopy(MachineInstr *MI,
908903 SrcMO.getReg ().isPhysical () ? SrcMO.isRenamable () : false );
909904
910905 if (MI->getNumOperands () > 2 )
911- transferImplicitOperands (MI, TRI);
906+ transferImplicitOperands (MI, & TRI);
912907 MI->eraseFromParent ();
913908}
914909
@@ -1324,8 +1319,7 @@ void TargetInstrInfo::reassociateOps(
13241319 MachineFunction *MF = Root.getMF ();
13251320 MachineRegisterInfo &MRI = MF->getRegInfo ();
13261321 const TargetInstrInfo *TII = MF->getSubtarget ().getInstrInfo ();
1327- const TargetRegisterInfo *TRI = MF->getSubtarget ().getRegisterInfo ();
1328- const TargetRegisterClass *RC = Root.getRegClassConstraint (0 , TII, TRI);
1322+ const TargetRegisterClass *RC = Root.getRegClassConstraint (0 , TII, &TRI);
13291323
13301324 MachineOperand &OpA = Prev.getOperand (OperandIndices[1 ]);
13311325 MachineOperand &OpB = Root.getOperand (OperandIndices[2 ]);
@@ -1707,8 +1701,7 @@ bool TargetInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
17071701 // stack slot reference to depend on the instruction that does the
17081702 // modification.
17091703 const TargetLowering &TLI = *MF.getSubtarget ().getTargetLowering ();
1710- const TargetRegisterInfo *TRI = MF.getSubtarget ().getRegisterInfo ();
1711- return MI.modifiesRegister (TLI.getStackPointerRegisterToSaveRestore (), TRI);
1704+ return MI.modifiesRegister (TLI.getStackPointerRegisterToSaveRestore (), &TRI);
17121705}
17131706
17141707// Provide a global flag for disabling the PreRA hazard recognizer that targets
@@ -1741,11 +1734,11 @@ CreateTargetPostRAHazardRecognizer(const InstrItineraryData *II,
17411734// Default implementation of getMemOperandWithOffset.
17421735bool TargetInstrInfo::getMemOperandWithOffset (
17431736 const MachineInstr &MI, const MachineOperand *&BaseOp, int64_t &Offset,
1744- bool &OffsetIsScalable, const TargetRegisterInfo *TRI ) const {
1737+ bool &OffsetIsScalable, const TargetRegisterInfo * /* RemoveMe */ ) const {
17451738 SmallVector<const MachineOperand *, 4 > BaseOps;
17461739 LocationSize Width = LocationSize::precise (0 );
17471740 if (!getMemOperandsWithOffsetWidth (MI, BaseOps, Offset, OffsetIsScalable,
1748- Width, TRI) ||
1741+ Width, & TRI) ||
17491742 BaseOps.size () != 1 )
17501743 return false ;
17511744 BaseOp = BaseOps.front ();
@@ -1866,7 +1859,6 @@ std::optional<ParamLoadedValue>
18661859TargetInstrInfo::describeLoadedValue (const MachineInstr &MI,
18671860 Register Reg) const {
18681861 const MachineFunction *MF = MI.getMF ();
1869- const TargetRegisterInfo *TRI = MF->getSubtarget ().getRegisterInfo ();
18701862 DIExpression *Expr = DIExpression::get (MF->getFunction ().getContext (), {});
18711863 int64_t Offset;
18721864 bool OffsetIsScalable;
@@ -1897,7 +1889,6 @@ TargetInstrInfo::describeLoadedValue(const MachineInstr &MI,
18971889 // Only describe memory which provably does not escape the function. As
18981890 // described in llvm.org/PR43343, escaped memory may be clobbered by the
18991891 // callee (or by another thread).
1900- const auto &TII = MF->getSubtarget ().getInstrInfo ();
19011892 const MachineFrameInfo &MFI = MF->getFrameInfo ();
19021893 const MachineMemOperand *MMO = MI.memoperands ()[0 ];
19031894 const PseudoSourceValue *PSV = MMO->getPseudoValue ();
@@ -1908,8 +1899,7 @@ TargetInstrInfo::describeLoadedValue(const MachineInstr &MI,
19081899 return std::nullopt ;
19091900
19101901 const MachineOperand *BaseOp;
1911- if (!TII->getMemOperandWithOffset (MI, BaseOp, Offset, OffsetIsScalable,
1912- TRI))
1902+ if (!getMemOperandWithOffset (MI, BaseOp, Offset, OffsetIsScalable, &TRI))
19131903 return std::nullopt ;
19141904
19151905 // FIXME: Scalable offsets are not yet handled in the offset code below.
@@ -2048,7 +2038,7 @@ bool TargetInstrInfo::getInsertSubregInputs(
20482038// Returns a MIRPrinter comment for this machine operand.
20492039std::string TargetInstrInfo::createMIROperandComment (
20502040 const MachineInstr &MI, const MachineOperand &Op, unsigned OpIdx,
2051- const TargetRegisterInfo *TRI ) const {
2041+ const TargetRegisterInfo * /* RemoveMe */ ) const {
20522042
20532043 if (!MI.isInlineAsm ())
20542044 return " " ;
@@ -2081,12 +2071,8 @@ std::string TargetInstrInfo::createMIROperandComment(
20812071 OS << F.getKindName ();
20822072
20832073 unsigned RCID;
2084- if (!F.isImmKind () && !F.isMemKind () && F.hasRegClassConstraint (RCID)) {
2085- if (TRI) {
2086- OS << ' :' << TRI->getRegClassName (TRI->getRegClass (RCID));
2087- } else
2088- OS << " :RC" << RCID;
2089- }
2074+ if (!F.isImmKind () && !F.isMemKind () && F.hasRegClassConstraint (RCID))
2075+ OS << ' :' << TRI.getRegClassName (TRI.getRegClass (RCID));
20902076
20912077 if (F.isMemKind ()) {
20922078 InlineAsm::ConstraintCode MCID = F.getMemoryConstraintID ();
0 commit comments