@@ -331,20 +331,20 @@ template <> struct MappingTraits<SIMachineFunctionInfo> {
331331class 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
438438public:
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
470470private:
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 {
488485public: // 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
494491public:
@@ -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