@@ -238,7 +238,7 @@ class WaitcntBrackets {
238
238
239
239
bool merge (const WaitcntBrackets &Other);
240
240
241
- RegInterval getRegInterval (const MachineInstr *MI, const SIInstrInfo *TII,
241
+ RegInterval getRegInterval (const MachineInstr *MI,
242
242
const MachineRegisterInfo *MRI,
243
243
const SIRegisterInfo *TRI, unsigned OpNo) const ;
244
244
@@ -500,7 +500,6 @@ class SIInsertWaitcnts : public MachineFunctionPass {
500
500
} // end anonymous namespace
501
501
502
502
RegInterval WaitcntBrackets::getRegInterval (const MachineInstr *MI,
503
- const SIInstrInfo *TII,
504
503
const MachineRegisterInfo *MRI,
505
504
const SIRegisterInfo *TRI,
506
505
unsigned OpNo) const {
@@ -534,7 +533,7 @@ RegInterval WaitcntBrackets::getRegInterval(const MachineInstr *MI,
534
533
else
535
534
return {-1 , -1 };
536
535
537
- const TargetRegisterClass *RC = TII-> getOpRegClass (*MI, OpNo );
536
+ const TargetRegisterClass *RC = TRI-> getPhysRegBaseClass (Op. getReg () );
538
537
unsigned Size = TRI->getRegSizeInBits (*RC);
539
538
Result.second = Result.first + ((Size + 16 ) / 32 );
540
539
@@ -546,7 +545,7 @@ void WaitcntBrackets::setExpScore(const MachineInstr *MI,
546
545
const SIRegisterInfo *TRI,
547
546
const MachineRegisterInfo *MRI, unsigned OpNo,
548
547
unsigned Val) {
549
- RegInterval Interval = getRegInterval (MI, TII, MRI, TRI, OpNo);
548
+ RegInterval Interval = getRegInterval (MI, MRI, TRI, OpNo);
550
549
assert (TRI->isVectorRegister (*MRI, MI->getOperand (OpNo).getReg ()));
551
550
for (int RegNo = Interval.first ; RegNo < Interval.second ; ++RegNo) {
552
551
setRegScore (RegNo, EXP_CNT, Val);
@@ -674,7 +673,7 @@ void WaitcntBrackets::updateByEvent(const SIInstrInfo *TII,
674
673
Inst.getOpcode() == AMDGPU::BUFFER_STORE_DWORDX4) {
675
674
MachineOperand *MO = TII->getNamedOperand(Inst, AMDGPU::OpName::data);
676
675
unsigned OpNo;//TODO: find the OpNo for this operand;
677
- RegInterval Interval = getRegInterval(&Inst, TII, MRI, TRI, OpNo);
676
+ RegInterval Interval = getRegInterval(&Inst, MRI, TRI, OpNo);
678
677
for (int RegNo = Interval.first; RegNo < Interval.second;
679
678
++RegNo) {
680
679
setRegScore(RegNo + NUM_ALL_VGPRS, t, CurrScore);
@@ -686,7 +685,7 @@ void WaitcntBrackets::updateByEvent(const SIInstrInfo *TII,
686
685
auto &Op = Inst.getOperand (I);
687
686
if (!Op.isReg () || !Op.isDef ())
688
687
continue ;
689
- RegInterval Interval = getRegInterval (&Inst, TII, MRI, TRI, I);
688
+ RegInterval Interval = getRegInterval (&Inst, MRI, TRI, I);
690
689
if (T == VM_CNT) {
691
690
if (Interval.first >= NUM_ALL_VGPRS)
692
691
continue ;
@@ -1140,7 +1139,7 @@ bool SIInsertWaitcnts::generateWaitcntInstBefore(MachineInstr &MI,
1140
1139
1141
1140
if (MI.getOperand (CallAddrOpIdx).isReg ()) {
1142
1141
RegInterval CallAddrOpInterval =
1143
- ScoreBrackets.getRegInterval (&MI, TII , MRI, TRI, CallAddrOpIdx);
1142
+ ScoreBrackets.getRegInterval (&MI, MRI, TRI, CallAddrOpIdx);
1144
1143
1145
1144
for (int RegNo = CallAddrOpInterval.first ;
1146
1145
RegNo < CallAddrOpInterval.second ; ++RegNo)
@@ -1150,7 +1149,7 @@ bool SIInsertWaitcnts::generateWaitcntInstBefore(MachineInstr &MI,
1150
1149
AMDGPU::getNamedOperandIdx (MI.getOpcode (), AMDGPU::OpName::dst);
1151
1150
if (RtnAddrOpIdx != -1 ) {
1152
1151
RegInterval RtnAddrOpInterval =
1153
- ScoreBrackets.getRegInterval (&MI, TII , MRI, TRI, RtnAddrOpIdx);
1152
+ ScoreBrackets.getRegInterval (&MI, MRI, TRI, RtnAddrOpIdx);
1154
1153
1155
1154
for (int RegNo = RtnAddrOpInterval.first ;
1156
1155
RegNo < RtnAddrOpInterval.second ; ++RegNo)
@@ -1202,8 +1201,7 @@ bool SIInsertWaitcnts::generateWaitcntInstBefore(MachineInstr &MI,
1202
1201
if (Op.isTied () && Op.isUse () && TII->doesNotReadTiedSource (MI))
1203
1202
continue ;
1204
1203
1205
- RegInterval Interval =
1206
- ScoreBrackets.getRegInterval (&MI, TII, MRI, TRI, I);
1204
+ RegInterval Interval = ScoreBrackets.getRegInterval (&MI, MRI, TRI, I);
1207
1205
1208
1206
const bool IsVGPR = TRI->isVectorRegister (*MRI, Op.getReg ());
1209
1207
for (int RegNo = Interval.first ; RegNo < Interval.second ; ++RegNo) {
@@ -1782,7 +1780,7 @@ bool SIInsertWaitcnts::shouldFlushVmCnt(MachineLoop *ML,
1782
1780
MachineOperand &Op = MI.getOperand (I);
1783
1781
if (!Op.isReg () || !TRI->isVectorRegister (*MRI, Op.getReg ()))
1784
1782
continue ;
1785
- RegInterval Interval = Brackets.getRegInterval (&MI, TII, MRI, TRI, I);
1783
+ RegInterval Interval = Brackets.getRegInterval (&MI, MRI, TRI, I);
1786
1784
// Vgpr use
1787
1785
if (Op.isUse ()) {
1788
1786
for (int RegNo = Interval.first ; RegNo < Interval.second ; ++RegNo) {
0 commit comments