Skip to content

Commit 2e43f39

Browse files
authored
[NFC][SIWholeQuadMode] Perform less lookups (#124927)
1 parent ce96c26 commit 2e43f39

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ class SIWholeQuadMode : public MachineFunctionPass {
218218
bool IsWQM);
219219
MachineInstr *lowerKillF32(MachineBasicBlock &MBB, MachineInstr &MI);
220220

221-
void lowerBlock(MachineBasicBlock &MBB);
222-
void processBlock(MachineBasicBlock &MBB, bool IsEntry);
221+
void lowerBlock(MachineBasicBlock &MBB, BlockInfo &BI);
222+
void processBlock(MachineBasicBlock &MBB, BlockInfo &BI, bool IsEntry);
223223

224224
bool lowerLiveMaskQueries();
225225
bool lowerCopyInstrs();
@@ -1035,12 +1035,7 @@ MachineInstr *SIWholeQuadMode::lowerKillI1(MachineBasicBlock &MBB,
10351035
// Replace (or supplement) instructions accessing live mask.
10361036
// This can only happen once all the live mask registers have been created
10371037
// and the execute state (WQM/StrictWWM/Exact) of instructions is known.
1038-
void SIWholeQuadMode::lowerBlock(MachineBasicBlock &MBB) {
1039-
auto *BII = Blocks.find(&MBB);
1040-
if (BII == Blocks.end())
1041-
return;
1042-
1043-
const BlockInfo &BI = BII->second;
1038+
void SIWholeQuadMode::lowerBlock(MachineBasicBlock &MBB, BlockInfo &BI) {
10441039
if (!BI.NeedsLowering)
10451040
return;
10461041

@@ -1052,8 +1047,9 @@ void SIWholeQuadMode::lowerBlock(MachineBasicBlock &MBB) {
10521047

10531048
for (MachineInstr &MI : llvm::make_early_inc_range(
10541049
llvm::make_range(MBB.getFirstNonPHI(), MBB.end()))) {
1055-
if (StateTransition.count(&MI))
1056-
State = StateTransition[&MI];
1050+
auto MIState = StateTransition.find(&MI);
1051+
if (MIState != StateTransition.end())
1052+
State = MIState->second;
10571053

10581054
MachineInstr *SplitPoint = nullptr;
10591055
switch (MI.getOpcode()) {
@@ -1260,13 +1256,8 @@ void SIWholeQuadMode::fromStrictMode(MachineBasicBlock &MBB,
12601256
StateTransition[MI] = NonStrictState;
12611257
}
12621258

1263-
void SIWholeQuadMode::processBlock(MachineBasicBlock &MBB, bool IsEntry) {
1264-
auto *BII = Blocks.find(&MBB);
1265-
if (BII == Blocks.end())
1266-
return;
1267-
1268-
BlockInfo &BI = BII->second;
1269-
1259+
void SIWholeQuadMode::processBlock(MachineBasicBlock &MBB, BlockInfo &BI,
1260+
bool IsEntry) {
12701261
// This is a non-entry block that is WQM throughout, so no need to do
12711262
// anything.
12721263
if (!IsEntry && BI.Needs == StateWQM && BI.OutNeeds != StateExact) {
@@ -1809,11 +1800,11 @@ bool SIWholeQuadMode::runOnMachineFunction(MachineFunction &MF) {
18091800
if (GlobalFlags & StateWQM)
18101801
Blocks[&Entry].InNeeds |= StateWQM;
18111802
// Wave mode switching requires full lowering pass.
1812-
for (auto BII : Blocks)
1813-
processBlock(*BII.first, BII.first == &Entry);
1803+
for (auto &BII : Blocks)
1804+
processBlock(*BII.first, BII.second, BII.first == &Entry);
18141805
// Lowering blocks causes block splitting so perform as a second pass.
1815-
for (auto BII : Blocks)
1816-
lowerBlock(*BII.first);
1806+
for (auto &BII : Blocks)
1807+
lowerBlock(*BII.first, BII.second);
18171808
Changed = true;
18181809
}
18191810

0 commit comments

Comments
 (0)