Skip to content

Commit 59e0704

Browse files
authored
[AMDGPU] Remove RegisterEncoding from SIInsertWaitcnts. NFC. (llvm#130056)
The information in this struct seemed useless. VGPR0 and SGPR0 were always 0. VGPRL and SGPRL were only used in assertions.
1 parent 512ef4c commit 59e0704

File tree

1 file changed

+9
-30
lines changed

1 file changed

+9
-30
lines changed

llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
113106
enum 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) {
254247
class WaitcntBrackets {
255248
public:
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

Comments
 (0)