Skip to content

Commit 7096078

Browse files
authored
[NFC][AMDGPU] Streamline code (#160177)
Streamline code by only declaring TRI/TII once and using isWave64(). Signed-off-by: John Lu <[email protected]>
1 parent 1ee1895 commit 7096078

File tree

1 file changed

+6
-18
lines changed

1 file changed

+6
-18
lines changed

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5902,10 +5902,11 @@ static MachineBasicBlock *lowerWaveReduce(MachineInstr &MI,
59025902
MachineBasicBlock *
59035903
SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
59045904
MachineBasicBlock *BB) const {
5905-
5906-
const SIInstrInfo *TII = getSubtarget()->getInstrInfo();
59075905
MachineFunction *MF = BB->getParent();
59085906
SIMachineFunctionInfo *MFI = MF->getInfo<SIMachineFunctionInfo>();
5907+
const GCNSubtarget &ST = MF->getSubtarget<GCNSubtarget>();
5908+
const SIInstrInfo *TII = getSubtarget()->getInstrInfo();
5909+
const SIRegisterInfo *TRI = Subtarget->getRegisterInfo();
59095910

59105911
switch (MI.getOpcode()) {
59115912
case AMDGPU::WAVE_REDUCE_UMIN_PSEUDO_U32:
@@ -5975,8 +5976,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
59755976
case AMDGPU::V_ADD_U64_PSEUDO:
59765977
case AMDGPU::V_SUB_U64_PSEUDO: {
59775978
MachineRegisterInfo &MRI = BB->getParent()->getRegInfo();
5978-
const GCNSubtarget &ST = MF->getSubtarget<GCNSubtarget>();
5979-
const SIRegisterInfo *TRI = ST.getRegisterInfo();
59805979
const DebugLoc &DL = MI.getDebugLoc();
59815980

59825981
bool IsAdd = (MI.getOpcode() == AMDGPU::V_ADD_U64_PSEUDO);
@@ -6072,8 +6071,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
60726071
// only from uniform add/subcarry node. All the VGPR operands
60736072
// therefore assumed to be splat vectors.
60746073
MachineRegisterInfo &MRI = BB->getParent()->getRegInfo();
6075-
const GCNSubtarget &ST = MF->getSubtarget<GCNSubtarget>();
6076-
const SIRegisterInfo *TRI = ST.getRegisterInfo();
60776074
MachineBasicBlock::iterator MII = MI;
60786075
const DebugLoc &DL = MI.getDebugLoc();
60796076
MachineOperand &Dest = MI.getOperand(0);
@@ -6103,16 +6100,13 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
61036100
Src2.setReg(RegOp2);
61046101
}
61056102

6106-
const TargetRegisterClass *Src2RC = MRI.getRegClass(Src2.getReg());
6107-
unsigned WaveSize = TRI->getRegSizeInBits(*Src2RC);
6108-
assert(WaveSize == 64 || WaveSize == 32);
6109-
6110-
if (WaveSize == 64) {
6103+
if (ST.isWave64()) {
61116104
if (ST.hasScalarCompareEq64()) {
61126105
BuildMI(*BB, MII, DL, TII->get(AMDGPU::S_CMP_LG_U64))
61136106
.addReg(Src2.getReg())
61146107
.addImm(0);
61156108
} else {
6109+
const TargetRegisterClass *Src2RC = MRI.getRegClass(Src2.getReg());
61166110
const TargetRegisterClass *SubRC =
61176111
TRI->getSubRegisterClass(Src2RC, AMDGPU::sub0);
61186112
MachineOperand Src2Sub0 = TII->buildExtractSubRegOrImm(
@@ -6142,7 +6136,7 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
61426136
// clang-format on
61436137

61446138
unsigned SelOpc =
6145-
(WaveSize == 64) ? AMDGPU::S_CSELECT_B64 : AMDGPU::S_CSELECT_B32;
6139+
(ST.isWave64()) ? AMDGPU::S_CSELECT_B64 : AMDGPU::S_CSELECT_B32;
61466140

61476141
BuildMI(*BB, MII, DL, TII->get(SelOpc), CarryDest.getReg())
61486142
.addImm(-1)
@@ -6245,8 +6239,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
62456239
return splitKillBlock(MI, BB);
62466240
case AMDGPU::V_CNDMASK_B64_PSEUDO: {
62476241
MachineRegisterInfo &MRI = BB->getParent()->getRegInfo();
6248-
const GCNSubtarget &ST = MF->getSubtarget<GCNSubtarget>();
6249-
const SIRegisterInfo *TRI = ST.getRegisterInfo();
62506242

62516243
Register Dst = MI.getOperand(0).getReg();
62526244
const MachineOperand &Src0 = MI.getOperand(1);
@@ -6304,7 +6296,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
63046296
return BB;
63056297
}
63066298
case AMDGPU::SI_BR_UNDEF: {
6307-
const SIInstrInfo *TII = getSubtarget()->getInstrInfo();
63086299
const DebugLoc &DL = MI.getDebugLoc();
63096300
MachineInstr *Br = BuildMI(*BB, MI, DL, TII->get(AMDGPU::S_CBRANCH_SCC1))
63106301
.add(MI.getOperand(0));
@@ -6321,7 +6312,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
63216312
return BB;
63226313
}
63236314
case AMDGPU::SI_CALL_ISEL: {
6324-
const SIInstrInfo *TII = getSubtarget()->getInstrInfo();
63256315
const DebugLoc &DL = MI.getDebugLoc();
63266316

63276317
unsigned ReturnAddrReg = TII->getRegisterInfo().getReturnAddressReg(*MF);
@@ -6351,8 +6341,6 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
63516341

63526342
auto I = BuildMI(*BB, MI, DL, TII->get(Opc), MI.getOperand(0).getReg());
63536343
if (TII->isVOP3(*I)) {
6354-
const GCNSubtarget &ST = MF->getSubtarget<GCNSubtarget>();
6355-
const SIRegisterInfo *TRI = ST.getRegisterInfo();
63566344
I.addReg(TRI->getVCC(), RegState::Define);
63576345
}
63586346
I.add(MI.getOperand(1)).add(MI.getOperand(2));

0 commit comments

Comments
 (0)