Skip to content

Commit d617371

Browse files
authored
[AMDGPU] Use the SchedModel available in SIInstrInfo (#110859)
Instead of allocating an initializing a new instance in `GCNHazardRecognizer` and `AMDGPUInsertDelayAlu`.
1 parent 8789c96 commit d617371

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class AMDGPUInsertDelayAlu : public MachineFunctionPass {
3030
const SIInstrInfo *SII;
3131
const TargetRegisterInfo *TRI;
3232

33-
TargetSchedModel SchedModel;
33+
const TargetSchedModel *SchedModel;
3434

3535
AMDGPUInsertDelayAlu() : MachineFunctionPass(ID) {}
3636

@@ -387,7 +387,7 @@ class AMDGPUInsertDelayAlu : public MachineFunctionPass {
387387
if (Type != OTHER) {
388388
// TODO: Scan implicit defs too?
389389
for (const auto &Op : MI.defs()) {
390-
unsigned Latency = SchedModel.computeOperandLatency(
390+
unsigned Latency = SchedModel->computeOperandLatency(
391391
&MI, Op.getOperandNo(), nullptr, 0);
392392
for (MCRegUnit Unit : TRI->regunits(Op.getReg()))
393393
State[Unit] = DelayInfo(Type, Latency);
@@ -429,8 +429,7 @@ class AMDGPUInsertDelayAlu : public MachineFunctionPass {
429429

430430
SII = ST.getInstrInfo();
431431
TRI = ST.getRegisterInfo();
432-
433-
SchedModel.init(&ST);
432+
SchedModel = &SII->getSchedModel();
434433

435434
// Calculate the delay state for each basic block, iterating until we reach
436435
// a fixed point.

llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ static bool shouldRunLdsBranchVmemWARHazardFixup(const MachineFunction &MF,
5959
GCNHazardRecognizer::GCNHazardRecognizer(const MachineFunction &MF)
6060
: IsHazardRecognizerMode(false), CurrCycleInstr(nullptr), MF(MF),
6161
ST(MF.getSubtarget<GCNSubtarget>()), TII(*ST.getInstrInfo()),
62-
TRI(TII.getRegisterInfo()), UseVALUReadHazardExhaustiveSearch(false),
62+
TRI(TII.getRegisterInfo()), TSchedModel(TII.getSchedModel()),
63+
UseVALUReadHazardExhaustiveSearch(false),
6364
ClauseUses(TRI.getNumRegUnits()), ClauseDefs(TRI.getNumRegUnits()) {
6465
MaxLookAhead = MF.getRegInfo().isPhysRegUsed(AMDGPU::AGPR0) ? 19 : 5;
65-
TSchedModel.init(&ST);
6666
RunLdsBranchVmemWARHazardFixup = shouldRunLdsBranchVmemWARHazardFixup(MF, ST);
6767
}
6868

llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class GCNHazardRecognizer final : public ScheduleHazardRecognizer {
4646
const GCNSubtarget &ST;
4747
const SIInstrInfo &TII;
4848
const SIRegisterInfo &TRI;
49-
TargetSchedModel TSchedModel;
49+
const TargetSchedModel &TSchedModel;
5050
bool RunLdsBranchVmemWARHazardFixup;
5151
BitVector VALUReadHazardSGPRs;
5252
bool UseVALUReadHazardExhaustiveSearch;

0 commit comments

Comments
 (0)