Skip to content

Commit a161e73

Browse files
committed
[AMDGPU] Remove unnecessary casts to GCNSubtarget
1 parent 1f2d934 commit a161e73

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,7 @@ const TargetRegisterClass *AMDGPUDAGToDAGISel::getOperandRegClass(SDNode *N,
349349
return MRI.getRegClass(Reg);
350350
}
351351

352-
const SIRegisterInfo *TRI
353-
= static_cast<const GCNSubtarget *>(Subtarget)->getRegisterInfo();
352+
const SIRegisterInfo *TRI = Subtarget->getRegisterInfo();
354353
return TRI->getPhysRegBaseClass(Reg);
355354
}
356355

@@ -2390,10 +2389,9 @@ bool AMDGPUDAGToDAGISel::isCBranchSCC(const SDNode *N) const {
23902389
return true;
23912390

23922391
if (VT == MVT::i64) {
2393-
const auto *ST = static_cast<const GCNSubtarget *>(Subtarget);
2394-
23952392
ISD::CondCode CC = cast<CondCodeSDNode>(Cond.getOperand(2))->get();
2396-
return (CC == ISD::SETEQ || CC == ISD::SETNE) && ST->hasScalarCompareEq64();
2393+
return (CC == ISD::SETEQ || CC == ISD::SETNE) &&
2394+
Subtarget->hasScalarCompareEq64();
23972395
}
23982396

23992397
return false;
@@ -2435,8 +2433,7 @@ void AMDGPUDAGToDAGISel::SelectBRCOND(SDNode *N) {
24352433
return;
24362434
}
24372435

2438-
const GCNSubtarget *ST = static_cast<const GCNSubtarget *>(Subtarget);
2439-
const SIRegisterInfo *TRI = ST->getRegisterInfo();
2436+
const SIRegisterInfo *TRI = Subtarget->getRegisterInfo();
24402437

24412438
bool UseSCCBr = isCBranchSCC(N) && isUniformBr(N);
24422439
bool AndExec = !UseSCCBr;
@@ -2449,7 +2446,7 @@ void AMDGPUDAGToDAGISel::SelectBRCOND(SDNode *N) {
24492446
if ((CC == ISD::SETEQ || CC == ISD::SETNE) &&
24502447
isNullConstant(Cond->getOperand(1)) &&
24512448
// We may encounter ballot.i64 in wave32 mode on -O0.
2452-
VCMP.getValueType().getSizeInBits() == ST->getWavefrontSize()) {
2449+
VCMP.getValueType().getSizeInBits() == Subtarget->getWavefrontSize()) {
24532450
// %VCMP = i(WaveSize) AMDGPUISD::SETCC ...
24542451
// %C = i1 ISD::SETCC %VCMP, 0, setne/seteq
24552452
// BRCOND i1 %C, %BB
@@ -2496,14 +2493,15 @@ void AMDGPUDAGToDAGISel::SelectBRCOND(SDNode *N) {
24962493
// the S_AND when is unnecessary. But it would be better to add a separate
24972494
// pass after SIFixSGPRCopies to do the unnecessary S_AND removal, so it
24982495
// catches both cases.
2499-
Cond = SDValue(CurDAG->getMachineNode(ST->isWave32() ? AMDGPU::S_AND_B32
2500-
: AMDGPU::S_AND_B64,
2501-
SL, MVT::i1,
2502-
CurDAG->getRegister(ST->isWave32() ? AMDGPU::EXEC_LO
2503-
: AMDGPU::EXEC,
2504-
MVT::i1),
2505-
Cond),
2506-
0);
2496+
Cond = SDValue(
2497+
CurDAG->getMachineNode(
2498+
Subtarget->isWave32() ? AMDGPU::S_AND_B32 : AMDGPU::S_AND_B64, SL,
2499+
MVT::i1,
2500+
CurDAG->getRegister(Subtarget->isWave32() ? AMDGPU::EXEC_LO
2501+
: AMDGPU::EXEC,
2502+
MVT::i1),
2503+
Cond),
2504+
0);
25072505
}
25082506

25092507
SDValue VCC = CurDAG->getCopyToReg(N->getOperand(0), SL, CondReg, Cond);

0 commit comments

Comments
 (0)