[llvm] 8a52fef - [AMDGPU] SILoadStoreOptimizer: tweak API of CombineInfo::setMI. NFC.
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 27 10:23:48 PST 2022
Author: Jay Foad
Date: 2022-01-27T18:20:46Z
New Revision: 8a52fef1e06c0b8fcf7fede9ec1c5fc1cf326be8
URL: https://github.com/llvm/llvm-project/commit/8a52fef1e06c0b8fcf7fede9ec1c5fc1cf326be8
DIFF: https://github.com/llvm/llvm-project/commit/8a52fef1e06c0b8fcf7fede9ec1c5fc1cf326be8.diff
LOG: [AMDGPU] SILoadStoreOptimizer: tweak API of CombineInfo::setMI. NFC.
Change CombineInfo::setMI to take a reference to the
SILoadStoreOptimizer instance, for easy access to common fields like
TII and STM.
Differential Revision: https://reviews.llvm.org/D118366
Added:
Modified:
llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
index 0ed8287de8ac9..77ecb01eb314a 100644
--- a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
+++ b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
@@ -158,8 +158,7 @@ class SILoadStoreOptimizer : public MachineFunctionPass {
return true;
}
- void setMI(MachineBasicBlock::iterator MI, const SIInstrInfo &TII,
- const GCNSubtarget &STM);
+ void setMI(MachineBasicBlock::iterator MI, const SILoadStoreOptimizer &LSO);
};
struct BaseRegisters {
@@ -484,11 +483,10 @@ static AddressRegs getRegs(unsigned Opc, const SIInstrInfo &TII) {
}
void SILoadStoreOptimizer::CombineInfo::setMI(MachineBasicBlock::iterator MI,
- const SIInstrInfo &TII,
- const GCNSubtarget &STM) {
+ const SILoadStoreOptimizer &LSO) {
I = MI;
unsigned Opc = MI->getOpcode();
- InstClass = getInstClass(Opc, TII);
+ InstClass = getInstClass(Opc, *LSO.TII);
if (InstClass == UNKNOWN)
return;
@@ -505,7 +503,7 @@ void SILoadStoreOptimizer::CombineInfo::setMI(MachineBasicBlock::iterator MI,
: 4;
break;
case S_BUFFER_LOAD_IMM:
- EltSize = AMDGPU::convertSMRDOffsetUnits(STM, 4);
+ EltSize = AMDGPU::convertSMRDOffsetUnits(*LSO.STM, 4);
break;
default:
EltSize = 4;
@@ -513,7 +511,7 @@ void SILoadStoreOptimizer::CombineInfo::setMI(MachineBasicBlock::iterator MI,
}
if (InstClass == MIMG) {
- DMask = TII.getNamedOperand(*I, AMDGPU::OpName::dmask)->getImm();
+ DMask = LSO.TII->getNamedOperand(*I, AMDGPU::OpName::dmask)->getImm();
// Offset is not considered for MIMG instructions.
Offset = 0;
} else {
@@ -522,17 +520,17 @@ void SILoadStoreOptimizer::CombineInfo::setMI(MachineBasicBlock::iterator MI,
}
if (InstClass == TBUFFER_LOAD || InstClass == TBUFFER_STORE)
- Format = TII.getNamedOperand(*I, AMDGPU::OpName::format)->getImm();
+ Format = LSO.TII->getNamedOperand(*I, AMDGPU::OpName::format)->getImm();
- Width = getOpcodeWidth(*I, TII);
+ Width = getOpcodeWidth(*I, *LSO.TII);
if ((InstClass == DS_READ) || (InstClass == DS_WRITE)) {
Offset &= 0xffff;
} else if (InstClass != MIMG) {
- CPol = TII.getNamedOperand(*I, AMDGPU::OpName::cpol)->getImm();
+ CPol = LSO.TII->getNamedOperand(*I, AMDGPU::OpName::cpol)->getImm();
}
- AddressRegs Regs = getRegs(Opc, TII);
+ AddressRegs Regs = getRegs(Opc, *LSO.TII);
NumAddresses = 0;
for (unsigned J = 0; J < Regs.NumVAddrs; J++)
@@ -2010,7 +2008,7 @@ SILoadStoreOptimizer::collectMergeableInsts(
continue;
CombineInfo CI;
- CI.setMI(MI, *TII, *STM);
+ CI.setMI(MI, *this);
CI.Order = Order++;
if (!CI.hasMergeableAddress(*MRI))
@@ -2123,54 +2121,54 @@ SILoadStoreOptimizer::optimizeInstsWithSameBaseAddr(
case DS_READ: {
MachineBasicBlock::iterator NewMI =
mergeRead2Pair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
break;
}
case DS_WRITE: {
MachineBasicBlock::iterator NewMI =
mergeWrite2Pair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
break;
}
case S_BUFFER_LOAD_IMM: {
MachineBasicBlock::iterator NewMI =
mergeSBufferLoadImmPair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 8;
break;
}
case BUFFER_LOAD: {
MachineBasicBlock::iterator NewMI =
mergeBufferLoadPair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 4;
break;
}
case BUFFER_STORE: {
MachineBasicBlock::iterator NewMI =
mergeBufferStorePair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 4;
break;
}
case MIMG: {
MachineBasicBlock::iterator NewMI =
mergeImagePair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 4;
break;
}
case TBUFFER_LOAD: {
MachineBasicBlock::iterator NewMI =
mergeTBufferLoadPair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 4;
break;
}
case TBUFFER_STORE: {
MachineBasicBlock::iterator NewMI =
mergeTBufferStorePair(CI, Paired, InstsToMove);
- CI.setMI(NewMI, *TII, *STM);
+ CI.setMI(NewMI, *this);
OptimizeListAgain |= (CI.Width + Paired.Width) < 4;
break;
}
More information about the llvm-commits
mailing list