@@ -103,13 +103,6 @@ struct HardwareLimits {
103103 unsigned KmcntMax; // gfx12+ only.
104104};
105105
106- struct RegisterEncoding {
107- unsigned VGPR0;
108- unsigned VGPRL;
109- unsigned SGPR0;
110- unsigned SGPRL;
111- };
112-
113106enum WaitEventType {
114107 VMEM_ACCESS, // vector-memory read & write
115108 VMEM_READ_ACCESS, // vector-memory read
@@ -254,11 +247,10 @@ InstCounterType eventCounter(const unsigned *masks, WaitEventType E) {
254247class WaitcntBrackets {
255248public:
256249 WaitcntBrackets (const GCNSubtarget *SubTarget, InstCounterType MaxCounter,
257- HardwareLimits Limits, RegisterEncoding Encoding,
258- const unsigned *WaitEventMaskForInst,
250+ HardwareLimits Limits, const unsigned *WaitEventMaskForInst,
259251 InstCounterType SmemAccessCounter)
260252 : ST(SubTarget), MaxCounter(MaxCounter), Limits(Limits),
261- Encoding (Encoding), WaitEventMaskForInst(WaitEventMaskForInst),
253+ WaitEventMaskForInst (WaitEventMaskForInst),
262254 SmemAccessCounter(SmemAccessCounter) {}
263255
264256 unsigned getWaitCountMax (InstCounterType T) const {
@@ -428,7 +420,6 @@ class WaitcntBrackets {
428420 const GCNSubtarget *ST = nullptr ;
429421 InstCounterType MaxCounter = NUM_EXTENDED_INST_CNTS;
430422 HardwareLimits Limits = {};
431- RegisterEncoding Encoding = {};
432423 const unsigned *WaitEventMaskForInst;
433424 InstCounterType SmemAccessCounter;
434425 unsigned ScoreLBs[NUM_INST_CNTS] = {0 };
@@ -761,16 +752,14 @@ RegInterval WaitcntBrackets::getRegInterval(const MachineInstr *MI,
761752 AMDGPU::HWEncoding::REG_IDX_MASK;
762753
763754 if (TRI->isVectorRegister (*MRI, Op.getReg ())) {
764- assert (Reg >= Encoding. VGPR0 && Reg <= Encoding. VGPRL );
765- Result.first = Reg - Encoding. VGPR0 ;
755+ assert (Reg <= SQ_MAX_PGM_VGPRS );
756+ Result.first = Reg;
766757 if (TRI->isAGPR (*MRI, Op.getReg ()))
767758 Result.first += AGPR_OFFSET;
768759 assert (Result.first >= 0 && Result.first < SQ_MAX_PGM_VGPRS);
769760 } else if (TRI->isSGPRReg (*MRI, Op.getReg ())) {
770- assert (Reg >= Encoding.SGPR0 && Reg < SQ_MAX_PGM_SGPRS);
771- Result.first = Reg - Encoding.SGPR0 + NUM_ALL_VGPRS;
772- assert (Result.first >= NUM_ALL_VGPRS &&
773- Result.first < SQ_MAX_PGM_SGPRS + NUM_ALL_VGPRS);
761+ assert (Reg < SQ_MAX_PGM_SGPRS);
762+ Result.first = Reg + NUM_ALL_VGPRS;
774763 }
775764 // TODO: Handle TTMP
776765 // else if (TRI->isTTMP(*MRI, Reg.getReg())) ...
@@ -2454,14 +2443,6 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
24542443 assert (NumVGPRsMax <= SQ_MAX_PGM_VGPRS);
24552444 assert (NumSGPRsMax <= SQ_MAX_PGM_SGPRS);
24562445
2457- RegisterEncoding Encoding = {};
2458- Encoding.VGPR0 =
2459- TRI->getEncodingValue (AMDGPU::VGPR0) & AMDGPU::HWEncoding::REG_IDX_MASK;
2460- Encoding.VGPRL = Encoding.VGPR0 + NumVGPRsMax - 1 ;
2461- Encoding.SGPR0 =
2462- TRI->getEncodingValue (AMDGPU::SGPR0) & AMDGPU::HWEncoding::REG_IDX_MASK;
2463- Encoding.SGPRL = Encoding.SGPR0 + NumSGPRsMax - 1 ;
2464-
24652446 BlockInfos.clear ();
24662447 bool Modified = false ;
24672448
@@ -2495,8 +2476,7 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
24952476 }
24962477
24972478 auto NonKernelInitialState = std::make_unique<WaitcntBrackets>(
2498- ST, MaxCounter, Limits, Encoding, WaitEventMaskForInst,
2499- SmemAccessCounter);
2479+ ST, MaxCounter, Limits, WaitEventMaskForInst, SmemAccessCounter);
25002480 NonKernelInitialState->setStateOnFunctionEntryOrReturn ();
25012481 BlockInfos[&EntryBB].Incoming = std::move (NonKernelInitialState);
25022482
@@ -2528,10 +2508,9 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
25282508 } else {
25292509 if (!Brackets)
25302510 Brackets = std::make_unique<WaitcntBrackets>(
2531- ST, MaxCounter, Limits, Encoding, WaitEventMaskForInst,
2532- SmemAccessCounter);
2511+ ST, MaxCounter, Limits, WaitEventMaskForInst, SmemAccessCounter);
25332512 else
2534- *Brackets = WaitcntBrackets (ST, MaxCounter, Limits, Encoding,
2513+ *Brackets = WaitcntBrackets (ST, MaxCounter, Limits,
25352514 WaitEventMaskForInst, SmemAccessCounter);
25362515 }
25372516
0 commit comments