Skip to content

Commit 7a30b9c

Browse files
authored
[AMDGPU] Make more use of getWaveMaskRegClass. NFC. (#108186)
1 parent 01967e2 commit 7a30b9c

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,8 +1116,8 @@ void SIFixSGPRCopies::fixSCCCopies(MachineFunction &MF) {
11161116
Register SrcReg = MI.getOperand(1).getReg();
11171117
Register DstReg = MI.getOperand(0).getReg();
11181118
if (SrcReg == AMDGPU::SCC) {
1119-
Register SCCCopy = MRI->createVirtualRegister(
1120-
TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID));
1119+
Register SCCCopy =
1120+
MRI->createVirtualRegister(TRI->getWaveMaskRegClass());
11211121
I = BuildMI(*MI.getParent(), std::next(MachineBasicBlock::iterator(MI)),
11221122
MI.getDebugLoc(),
11231123
TII->get(IsWave32 ? AMDGPU::S_CSELECT_B32

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4562,7 +4562,7 @@ loadM0FromVGPR(const SIInstrInfo *TII, MachineBasicBlock &MBB, MachineInstr &MI,
45624562
const DebugLoc &DL = MI.getDebugLoc();
45634563
MachineBasicBlock::iterator I(&MI);
45644564

4565-
const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
4565+
const auto *BoolXExecRC = TRI->getWaveMaskRegClass();
45664566
Register DstReg = MI.getOperand(0).getReg();
45674567
Register SaveExec = MRI.createVirtualRegister(BoolXExecRC);
45684568
Register TmpExec = MRI.createVirtualRegister(BoolXExecRC);
@@ -5064,7 +5064,7 @@ MachineBasicBlock *SITargetLowering::EmitInstrWithCustomInserter(
50645064
return BB;
50655065
}
50665066

5067-
const auto *CarryRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
5067+
const auto *CarryRC = TRI->getWaveMaskRegClass();
50685068

50695069
Register DestSub0 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
50705070
Register DestSub1 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
@@ -5296,7 +5296,7 @@ MachineBasicBlock *SITargetLowering::EmitInstrWithCustomInserter(
52965296

52975297
Register DstLo = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
52985298
Register DstHi = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
5299-
const auto *CondRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
5299+
const auto *CondRC = TRI->getWaveMaskRegClass();
53005300
Register SrcCondCopy = MRI.createVirtualRegister(CondRC);
53015301

53025302
const TargetRegisterClass *Src0RC = Src0.isReg()

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,8 +1231,7 @@ void SIInstrInfo::insertVectorSelect(MachineBasicBlock &MBB,
12311231
Register TrueReg,
12321232
Register FalseReg) const {
12331233
MachineRegisterInfo &MRI = MBB.getParent()->getRegInfo();
1234-
const TargetRegisterClass *BoolXExecRC =
1235-
RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
1234+
const TargetRegisterClass *BoolXExecRC = RI.getWaveMaskRegClass();
12361235
assert(MRI.getRegClass(DstReg) == &AMDGPU::VGPR_32RegClass &&
12371236
"Not a VGPR32 reg");
12381237

@@ -6417,7 +6416,7 @@ static void emitLoadScalarOpsFromVGPRLoop(
64176416
ST.isWave32() ? AMDGPU::S_XOR_B32_term : AMDGPU::S_XOR_B64_term;
64186417
unsigned AndOpc =
64196418
ST.isWave32() ? AMDGPU::S_AND_B32 : AMDGPU::S_AND_B64;
6420-
const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
6419+
const auto *BoolXExecRC = TRI->getWaveMaskRegClass();
64216420

64226421
MachineBasicBlock::iterator I = LoopBB.begin();
64236422

@@ -6565,7 +6564,7 @@ loadMBUFScalarOperandsFromVGPR(const SIInstrInfo &TII, MachineInstr &MI,
65656564
const DebugLoc &DL = MI.getDebugLoc();
65666565
unsigned Exec = ST.isWave32() ? AMDGPU::EXEC_LO : AMDGPU::EXEC;
65676566
unsigned MovExecOpc = ST.isWave32() ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64;
6568-
const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
6567+
const auto *BoolXExecRC = TRI->getWaveMaskRegClass();
65696568

65706569
// Save SCC. Waterfall Loop may overwrite SCC.
65716570
Register SaveSCCReg;
@@ -6958,7 +6957,7 @@ SIInstrInfo::legalizeOperands(MachineInstr &MI,
69586957
Register NewVAddrHi = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
69596958
Register NewVAddr = MRI.createVirtualRegister(&AMDGPU::VReg_64RegClass);
69606959

6961-
const auto *BoolXExecRC = RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
6960+
const auto *BoolXExecRC = RI.getWaveMaskRegClass();
69626961
Register CondReg0 = MRI.createVirtualRegister(BoolXExecRC);
69636962
Register CondReg1 = MRI.createVirtualRegister(BoolXExecRC);
69646963

@@ -7336,7 +7335,7 @@ void SIInstrInfo::moveToVALUImpl(SIInstrWorklist &Worklist,
73367335
unsigned Opc = (Inst.getOpcode() == AMDGPU::S_ADD_CO_PSEUDO)
73377336
? AMDGPU::V_ADDC_U32_e64
73387337
: AMDGPU::V_SUBB_U32_e64;
7339-
const auto *CarryRC = RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
7338+
const auto *CarryRC = RI.getWaveMaskRegClass();
73407339

73417340
Register CarryInReg = Inst.getOperand(4).getReg();
73427341
if (!MRI.constrainRegClass(CarryInReg, CarryRC)) {
@@ -7711,8 +7710,7 @@ void SIInstrInfo::lowerSelect(SIInstrWorklist &Worklist, MachineInstr &Inst,
77117710

77127711
Register NewCondReg = CondReg;
77137712
if (IsSCC) {
7714-
const TargetRegisterClass *TC =
7715-
RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
7713+
const TargetRegisterClass *TC = RI.getWaveMaskRegClass();
77167714
NewCondReg = MRI.createVirtualRegister(TC);
77177715

77187716
// Now look for the closest SCC def if it is a copy

llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2014,7 +2014,7 @@ Register SILoadStoreOptimizer::computeBase(MachineInstr &MI,
20142014
MachineOperand OffsetHi =
20152015
createRegOrImm(static_cast<int32_t>(Addr.Offset >> 32), MI);
20162016

2017-
const auto *CarryRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
2017+
const auto *CarryRC = TRI->getWaveMaskRegClass();
20182018
Register CarryReg = MRI->createVirtualRegister(CarryRC);
20192019
Register DeadCarryReg = MRI->createVirtualRegister(CarryRC);
20202020

llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3428,8 +3428,7 @@ SIRegisterInfo::getRegClassForSizeOnBank(unsigned Size,
34283428
std::max(ST.useRealTrue16Insts() ? 16u : 32u, Size));
34293429
case AMDGPU::VCCRegBankID:
34303430
assert(Size == 1);
3431-
return isWave32 ? &AMDGPU::SReg_32_XM0_XEXECRegClass
3432-
: &AMDGPU::SReg_64_XEXECRegClass;
3431+
return getWaveMaskRegClass();
34333432
case AMDGPU::SGPRRegBankID:
34343433
return getSGPRClassForBitWidth(std::max(32u, Size));
34353434
case AMDGPU::AGPRRegBankID:
@@ -3472,8 +3471,7 @@ SIRegisterInfo::getRegClass(unsigned RCID) const {
34723471
case AMDGPU::SReg_1RegClassID:
34733472
return getBoolRC();
34743473
case AMDGPU::SReg_1_XEXECRegClassID:
3475-
return isWave32 ? &AMDGPU::SReg_32_XM0_XEXECRegClass
3476-
: &AMDGPU::SReg_64_XEXECRegClass;
3474+
return getWaveMaskRegClass();
34773475
case -1:
34783476
return nullptr;
34793477
default:

0 commit comments

Comments
 (0)