@@ -103,13 +103,6 @@ struct HardwareLimits {
103
103
unsigned KmcntMax; // gfx12+ only.
104
104
};
105
105
106
- struct RegisterEncoding {
107
- unsigned VGPR0;
108
- unsigned VGPRL;
109
- unsigned SGPR0;
110
- unsigned SGPRL;
111
- };
112
-
113
106
enum WaitEventType {
114
107
VMEM_ACCESS, // vector-memory read & write
115
108
VMEM_READ_ACCESS, // vector-memory read
@@ -254,11 +247,10 @@ InstCounterType eventCounter(const unsigned *masks, WaitEventType E) {
254
247
class WaitcntBrackets {
255
248
public:
256
249
WaitcntBrackets (const GCNSubtarget *SubTarget, InstCounterType MaxCounter,
257
- HardwareLimits Limits, RegisterEncoding Encoding,
258
- const unsigned *WaitEventMaskForInst,
250
+ HardwareLimits Limits, const unsigned *WaitEventMaskForInst,
259
251
InstCounterType SmemAccessCounter)
260
252
: ST(SubTarget), MaxCounter(MaxCounter), Limits(Limits),
261
- Encoding (Encoding), WaitEventMaskForInst(WaitEventMaskForInst),
253
+ WaitEventMaskForInst (WaitEventMaskForInst),
262
254
SmemAccessCounter(SmemAccessCounter) {}
263
255
264
256
unsigned getWaitCountMax (InstCounterType T) const {
@@ -428,7 +420,6 @@ class WaitcntBrackets {
428
420
const GCNSubtarget *ST = nullptr ;
429
421
InstCounterType MaxCounter = NUM_EXTENDED_INST_CNTS;
430
422
HardwareLimits Limits = {};
431
- RegisterEncoding Encoding = {};
432
423
const unsigned *WaitEventMaskForInst;
433
424
InstCounterType SmemAccessCounter;
434
425
unsigned ScoreLBs[NUM_INST_CNTS] = {0 };
@@ -761,16 +752,14 @@ RegInterval WaitcntBrackets::getRegInterval(const MachineInstr *MI,
761
752
AMDGPU::HWEncoding::REG_IDX_MASK;
762
753
763
754
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;
766
757
if (TRI->isAGPR (*MRI, Op.getReg ()))
767
758
Result.first += AGPR_OFFSET;
768
759
assert (Result.first >= 0 && Result.first < SQ_MAX_PGM_VGPRS);
769
760
} 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;
774
763
}
775
764
// TODO: Handle TTMP
776
765
// else if (TRI->isTTMP(*MRI, Reg.getReg())) ...
@@ -2454,14 +2443,6 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
2454
2443
assert (NumVGPRsMax <= SQ_MAX_PGM_VGPRS);
2455
2444
assert (NumSGPRsMax <= SQ_MAX_PGM_SGPRS);
2456
2445
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
-
2465
2446
BlockInfos.clear ();
2466
2447
bool Modified = false ;
2467
2448
@@ -2495,8 +2476,7 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
2495
2476
}
2496
2477
2497
2478
auto NonKernelInitialState = std::make_unique<WaitcntBrackets>(
2498
- ST, MaxCounter, Limits, Encoding, WaitEventMaskForInst,
2499
- SmemAccessCounter);
2479
+ ST, MaxCounter, Limits, WaitEventMaskForInst, SmemAccessCounter);
2500
2480
NonKernelInitialState->setStateOnFunctionEntryOrReturn ();
2501
2481
BlockInfos[&EntryBB].Incoming = std::move (NonKernelInitialState);
2502
2482
@@ -2528,10 +2508,9 @@ bool SIInsertWaitcnts::runOnMachineFunction(MachineFunction &MF) {
2528
2508
} else {
2529
2509
if (!Brackets)
2530
2510
Brackets = std::make_unique<WaitcntBrackets>(
2531
- ST, MaxCounter, Limits, Encoding, WaitEventMaskForInst,
2532
- SmemAccessCounter);
2511
+ ST, MaxCounter, Limits, WaitEventMaskForInst, SmemAccessCounter);
2533
2512
else
2534
- *Brackets = WaitcntBrackets (ST, MaxCounter, Limits, Encoding,
2513
+ *Brackets = WaitcntBrackets (ST, MaxCounter, Limits,
2535
2514
WaitEventMaskForInst, SmemAccessCounter);
2536
2515
}
2537
2516
0 commit comments