Skip to content

Commit db099f9

Browse files
committed
[AMDGPU][NFC] Refactor some uses of unsigned to Register
Tags: #llvm Differential Revision: https://reviews.llvm.org/D76035
1 parent 30bb113 commit db099f9

File tree

3 files changed

+52
-52
lines changed

3 files changed

+52
-52
lines changed

llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,11 +1051,14 @@ bool GCNTargetMachine::parseMachineFunctionInfo(
10511051

10521052
MFI->initializeBaseYamlFields(YamlMFI);
10531053

1054-
auto parseRegister = [&](const yaml::StringValue &RegName, unsigned &RegVal) {
1055-
if (parseNamedRegisterReference(PFS, RegVal, RegName.Value, Error)) {
1054+
auto parseRegister = [&](const yaml::StringValue &RegName, Register &RegVal) {
1055+
// FIXME: Update parseNamedRegsiterReference to take a Register.
1056+
unsigned TempReg;
1057+
if (parseNamedRegisterReference(PFS, TempReg, RegName.Value, Error)) {
10561058
SourceRange = RegName.SourceRange;
10571059
return true;
10581060
}
1061+
RegVal = TempReg;
10591062

10601063
return false;
10611064
};

llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ void SIMachineFunctionInfo::limitOccupancy(const MachineFunction &MF) {
212212
MF.getFunction()));
213213
}
214214

215-
unsigned SIMachineFunctionInfo::addPrivateSegmentBuffer(
215+
Register SIMachineFunctionInfo::addPrivateSegmentBuffer(
216216
const SIRegisterInfo &TRI) {
217217
ArgInfo.PrivateSegmentBuffer =
218218
ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
@@ -221,43 +221,43 @@ unsigned SIMachineFunctionInfo::addPrivateSegmentBuffer(
221221
return ArgInfo.PrivateSegmentBuffer.getRegister();
222222
}
223223

224-
unsigned SIMachineFunctionInfo::addDispatchPtr(const SIRegisterInfo &TRI) {
224+
Register SIMachineFunctionInfo::addDispatchPtr(const SIRegisterInfo &TRI) {
225225
ArgInfo.DispatchPtr = ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
226226
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
227227
NumUserSGPRs += 2;
228228
return ArgInfo.DispatchPtr.getRegister();
229229
}
230230

231-
unsigned SIMachineFunctionInfo::addQueuePtr(const SIRegisterInfo &TRI) {
231+
Register SIMachineFunctionInfo::addQueuePtr(const SIRegisterInfo &TRI) {
232232
ArgInfo.QueuePtr = ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
233233
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
234234
NumUserSGPRs += 2;
235235
return ArgInfo.QueuePtr.getRegister();
236236
}
237237

238-
unsigned SIMachineFunctionInfo::addKernargSegmentPtr(const SIRegisterInfo &TRI) {
238+
Register SIMachineFunctionInfo::addKernargSegmentPtr(const SIRegisterInfo &TRI) {
239239
ArgInfo.KernargSegmentPtr
240240
= ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
241241
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
242242
NumUserSGPRs += 2;
243243
return ArgInfo.KernargSegmentPtr.getRegister();
244244
}
245245

246-
unsigned SIMachineFunctionInfo::addDispatchID(const SIRegisterInfo &TRI) {
246+
Register SIMachineFunctionInfo::addDispatchID(const SIRegisterInfo &TRI) {
247247
ArgInfo.DispatchID = ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
248248
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
249249
NumUserSGPRs += 2;
250250
return ArgInfo.DispatchID.getRegister();
251251
}
252252

253-
unsigned SIMachineFunctionInfo::addFlatScratchInit(const SIRegisterInfo &TRI) {
253+
Register SIMachineFunctionInfo::addFlatScratchInit(const SIRegisterInfo &TRI) {
254254
ArgInfo.FlatScratchInit = ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
255255
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
256256
NumUserSGPRs += 2;
257257
return ArgInfo.FlatScratchInit.getRegister();
258258
}
259259

260-
unsigned SIMachineFunctionInfo::addImplicitBufferPtr(const SIRegisterInfo &TRI) {
260+
Register SIMachineFunctionInfo::addImplicitBufferPtr(const SIRegisterInfo &TRI) {
261261
ArgInfo.ImplicitBufferPtr = ArgDescriptor::createRegister(TRI.getMatchingSuperReg(
262262
getNextUserSGPR(), AMDGPU::sub0, &AMDGPU::SReg_64RegClass));
263263
NumUserSGPRs += 2;
@@ -310,7 +310,7 @@ bool SIMachineFunctionInfo::allocateSGPRSpillToVGPR(MachineFunction &MF,
310310
// Make sure to handle the case where a wide SGPR spill may span between two
311311
// VGPRs.
312312
for (int I = 0; I < NumLanes; ++I, ++NumVGPRSpillLanes) {
313-
unsigned LaneVGPR;
313+
Register LaneVGPR;
314314
unsigned VGPRIndex = (NumVGPRSpillLanes % WaveSize);
315315

316316
if (VGPRIndex == 0) {
@@ -442,7 +442,7 @@ MCPhysReg SIMachineFunctionInfo::getNextSystemSGPR() const {
442442
return AMDGPU::SGPR0 + NumUserSGPRs + NumSystemSGPRs;
443443
}
444444

445-
static yaml::StringValue regToString(unsigned Reg,
445+
static yaml::StringValue regToString(Register Reg,
446446
const TargetRegisterInfo &TRI) {
447447
yaml::StringValue Dest;
448448
{

llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -331,20 +331,20 @@ template <> struct MappingTraits<SIMachineFunctionInfo> {
331331
class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
332332
friend class GCNTargetMachine;
333333

334-
unsigned TIDReg = AMDGPU::NoRegister;
334+
Register TIDReg = AMDGPU::NoRegister;
335335

336336
// Registers that may be reserved for spilling purposes. These may be the same
337337
// as the input registers.
338-
unsigned ScratchRSrcReg = AMDGPU::PRIVATE_RSRC_REG;
339-
unsigned ScratchWaveOffsetReg = AMDGPU::SCRATCH_WAVE_OFFSET_REG;
338+
Register ScratchRSrcReg = AMDGPU::PRIVATE_RSRC_REG;
339+
Register ScratchWaveOffsetReg = AMDGPU::SCRATCH_WAVE_OFFSET_REG;
340340

341341
// This is the current function's incremented size from the kernel's scratch
342342
// wave offset register. For an entry function, this is exactly the same as
343343
// the ScratchWaveOffsetReg.
344-
unsigned FrameOffsetReg = AMDGPU::FP_REG;
344+
Register FrameOffsetReg = AMDGPU::FP_REG;
345345

346346
// Top of the stack SGPR offset derived from the ScratchWaveOffsetReg.
347-
unsigned StackPtrOffsetReg = AMDGPU::SP_REG;
347+
Register StackPtrOffsetReg = AMDGPU::SP_REG;
348348

349349
AMDGPUFunctionArgInfo ArgInfo;
350350

@@ -437,25 +437,25 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
437437

438438
public:
439439
struct SpilledReg {
440-
unsigned VGPR = 0;
440+
Register VGPR;
441441
int Lane = -1;
442442

443443
SpilledReg() = default;
444-
SpilledReg(unsigned R, int L) : VGPR (R), Lane (L) {}
444+
SpilledReg(Register R, int L) : VGPR (R), Lane (L) {}
445445

446446
bool hasLane() { return Lane != -1;}
447447
bool hasReg() { return VGPR != 0;}
448448
};
449449

450450
struct SGPRSpillVGPRCSR {
451451
// VGPR used for SGPR spills
452-
unsigned VGPR;
452+
Register VGPR;
453453

454454
// If the VGPR is a CSR, the stack slot used to save/restore it in the
455455
// prolog/epilog.
456456
Optional<int> FI;
457457

458-
SGPRSpillVGPRCSR(unsigned V, Optional<int> F) : VGPR(V), FI(F) {}
458+
SGPRSpillVGPRCSR(Register V, Optional<int> F) : VGPR(V), FI(F) {}
459459
};
460460

461461
struct VGPRSpillToAGPR {
@@ -465,12 +465,9 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
465465

466466
SparseBitVector<> WWMReservedRegs;
467467

468-
void ReserveWWMRegister(unsigned reg) { WWMReservedRegs.set(reg); }
468+
void ReserveWWMRegister(Register Reg) { WWMReservedRegs.set(Reg); }
469469

470470
private:
471-
// SGPR->VGPR spilling support.
472-
using SpillRegMask = std::pair<unsigned, unsigned>;
473-
474471
// Track VGPR + wave index for each subregister of the SGPR spilled to
475472
// frameindex key.
476473
DenseMap<int, std::vector<SpilledReg>> SGPRToVGPRSpills;
@@ -488,7 +485,7 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
488485
public: // FIXME
489486
/// If this is set, an SGPR used for save/restore of the register used for the
490487
/// frame pointer.
491-
unsigned SGPRForFPSaveRestoreCopy = 0;
488+
Register SGPRForFPSaveRestoreCopy;
492489
Optional<int> FramePointerSaveIndex;
493490

494491
public:
@@ -527,8 +524,8 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
527524
void removeDeadFrameIndices(MachineFrameInfo &MFI);
528525

529526
bool hasCalculatedTID() const { return TIDReg != 0; };
530-
unsigned getTIDReg() const { return TIDReg; };
531-
void setTIDReg(unsigned Reg) { TIDReg = Reg; }
527+
Register getTIDReg() const { return TIDReg; };
528+
void setTIDReg(Register Reg) { TIDReg = Reg; }
532529

533530
unsigned getBytesInStackArgArea() const {
534531
return BytesInStackArgArea;
@@ -539,34 +536,34 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
539536
}
540537

541538
// Add user SGPRs.
542-
unsigned addPrivateSegmentBuffer(const SIRegisterInfo &TRI);
543-
unsigned addDispatchPtr(const SIRegisterInfo &TRI);
544-
unsigned addQueuePtr(const SIRegisterInfo &TRI);
545-
unsigned addKernargSegmentPtr(const SIRegisterInfo &TRI);
546-
unsigned addDispatchID(const SIRegisterInfo &TRI);
547-
unsigned addFlatScratchInit(const SIRegisterInfo &TRI);
548-
unsigned addImplicitBufferPtr(const SIRegisterInfo &TRI);
539+
Register addPrivateSegmentBuffer(const SIRegisterInfo &TRI);
540+
Register addDispatchPtr(const SIRegisterInfo &TRI);
541+
Register addQueuePtr(const SIRegisterInfo &TRI);
542+
Register addKernargSegmentPtr(const SIRegisterInfo &TRI);
543+
Register addDispatchID(const SIRegisterInfo &TRI);
544+
Register addFlatScratchInit(const SIRegisterInfo &TRI);
545+
Register addImplicitBufferPtr(const SIRegisterInfo &TRI);
549546

550547
// Add system SGPRs.
551-
unsigned addWorkGroupIDX() {
548+
Register addWorkGroupIDX() {
552549
ArgInfo.WorkGroupIDX = ArgDescriptor::createRegister(getNextSystemSGPR());
553550
NumSystemSGPRs += 1;
554551
return ArgInfo.WorkGroupIDX.getRegister();
555552
}
556553

557-
unsigned addWorkGroupIDY() {
554+
Register addWorkGroupIDY() {
558555
ArgInfo.WorkGroupIDY = ArgDescriptor::createRegister(getNextSystemSGPR());
559556
NumSystemSGPRs += 1;
560557
return ArgInfo.WorkGroupIDY.getRegister();
561558
}
562559

563-
unsigned addWorkGroupIDZ() {
560+
Register addWorkGroupIDZ() {
564561
ArgInfo.WorkGroupIDZ = ArgDescriptor::createRegister(getNextSystemSGPR());
565562
NumSystemSGPRs += 1;
566563
return ArgInfo.WorkGroupIDZ.getRegister();
567564
}
568565

569-
unsigned addWorkGroupInfo() {
566+
Register addWorkGroupInfo() {
570567
ArgInfo.WorkGroupInfo = ArgDescriptor::createRegister(getNextSystemSGPR());
571568
NumSystemSGPRs += 1;
572569
return ArgInfo.WorkGroupInfo.getRegister();
@@ -585,14 +582,14 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
585582
ArgInfo.WorkItemIDZ = Arg;
586583
}
587584

588-
unsigned addPrivateSegmentWaveByteOffset() {
585+
Register addPrivateSegmentWaveByteOffset() {
589586
ArgInfo.PrivateSegmentWaveByteOffset
590587
= ArgDescriptor::createRegister(getNextSystemSGPR());
591588
NumSystemSGPRs += 1;
592589
return ArgInfo.PrivateSegmentWaveByteOffset.getRegister();
593590
}
594591

595-
void setPrivateSegmentWaveByteOffset(unsigned Reg) {
592+
void setPrivateSegmentWaveByteOffset(Register Reg) {
596593
ArgInfo.PrivateSegmentWaveByteOffset = ArgDescriptor::createRegister(Reg);
597594
}
598595

@@ -698,35 +695,35 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
698695
return NumUserSGPRs + NumSystemSGPRs;
699696
}
700697

701-
unsigned getPrivateSegmentWaveByteOffsetSystemSGPR() const {
698+
Register getPrivateSegmentWaveByteOffsetSystemSGPR() const {
702699
return ArgInfo.PrivateSegmentWaveByteOffset.getRegister();
703700
}
704701

705702
/// Returns the physical register reserved for use as the resource
706703
/// descriptor for scratch accesses.
707-
unsigned getScratchRSrcReg() const {
704+
Register getScratchRSrcReg() const {
708705
return ScratchRSrcReg;
709706
}
710707

711-
void setScratchRSrcReg(unsigned Reg) {
708+
void setScratchRSrcReg(Register Reg) {
712709
assert(Reg != 0 && "Should never be unset");
713710
ScratchRSrcReg = Reg;
714711
}
715712

716-
unsigned getScratchWaveOffsetReg() const {
713+
Register getScratchWaveOffsetReg() const {
717714
return ScratchWaveOffsetReg;
718715
}
719716

720-
unsigned getFrameOffsetReg() const {
717+
Register getFrameOffsetReg() const {
721718
return FrameOffsetReg;
722719
}
723720

724-
void setFrameOffsetReg(unsigned Reg) {
721+
void setFrameOffsetReg(Register Reg) {
725722
assert(Reg != 0 && "Should never be unset");
726723
FrameOffsetReg = Reg;
727724
}
728725

729-
void setStackPtrOffsetReg(unsigned Reg) {
726+
void setStackPtrOffsetReg(Register Reg) {
730727
assert(Reg != 0 && "Should never be unset");
731728
StackPtrOffsetReg = Reg;
732729
}
@@ -735,20 +732,20 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
735732
// NoRegister. This is mostly a workaround for MIR tests where state that
736733
// can't be directly computed from the function is not preserved in serialized
737734
// MIR.
738-
unsigned getStackPtrOffsetReg() const {
735+
Register getStackPtrOffsetReg() const {
739736
return StackPtrOffsetReg;
740737
}
741738

742-
void setScratchWaveOffsetReg(unsigned Reg) {
739+
void setScratchWaveOffsetReg(Register Reg) {
743740
assert(Reg != 0 && "Should never be unset");
744741
ScratchWaveOffsetReg = Reg;
745742
}
746743

747-
unsigned getQueuePtrUserSGPR() const {
744+
Register getQueuePtrUserSGPR() const {
748745
return ArgInfo.QueuePtr.getRegister();
749746
}
750747

751-
unsigned getImplicitBufferPtrUserSGPR() const {
748+
Register getImplicitBufferPtrUserSGPR() const {
752749
return ArgInfo.ImplicitBufferPtr.getRegister();
753750
}
754751

@@ -861,7 +858,7 @@ class SIMachineFunctionInfo final : public AMDGPUMachineFunction {
861858
}
862859

863860
/// \returns SGPR used for \p Dim's work group ID.
864-
unsigned getWorkGroupIDSGPR(unsigned Dim) const {
861+
Register getWorkGroupIDSGPR(unsigned Dim) const {
865862
switch (Dim) {
866863
case 0:
867864
assert(hasWorkGroupIDX());

0 commit comments

Comments
 (0)