Skip to content

Commit efdd660

Browse files
[SPIRV] Avoid repeated hash lookups (NFC) (#129826)
1 parent efc2f69 commit efdd660

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -399,11 +399,11 @@ MCRegister SPIRVModuleAnalysis::handleFunctionOrParameter(
399399
F = dyn_cast<Argument>(GObj)->getParent();
400400
assert(F && "Expected a reference to a function or an argument");
401401
IsFunDef = !F->isDeclaration();
402-
auto It = GlobalToGReg.find(GObj);
403-
if (It != GlobalToGReg.end())
402+
auto [It, Inserted] = GlobalToGReg.try_emplace(GObj);
403+
if (!Inserted)
404404
return It->second;
405405
MCRegister GReg = MAI.getNextIDRegister();
406-
GlobalToGReg[GObj] = GReg;
406+
It->second = GReg;
407407
if (!IsFunDef)
408408
MAI.MS[SPIRV::MB_ExtFuncDecls].push_back(&MI);
409409
return GReg;
@@ -413,11 +413,11 @@ MCRegister
413413
SPIRVModuleAnalysis::handleTypeDeclOrConstant(const MachineInstr &MI,
414414
InstrGRegsMap &SignatureToGReg) {
415415
InstrSignature MISign = instrToSignature(MI, MAI, false);
416-
auto It = SignatureToGReg.find(MISign);
417-
if (It != SignatureToGReg.end())
416+
auto [It, Inserted] = SignatureToGReg.try_emplace(MISign);
417+
if (!Inserted)
418418
return It->second;
419419
MCRegister GReg = MAI.getNextIDRegister();
420-
SignatureToGReg[MISign] = GReg;
420+
It->second = GReg;
421421
MAI.MS[SPIRV::MB_TypeConstVars].push_back(&MI);
422422
return GReg;
423423
}
@@ -428,11 +428,11 @@ MCRegister SPIRVModuleAnalysis::handleVariable(
428428
MAI.GlobalVarList.push_back(&MI);
429429
const Value *GObj = GR->getGlobalObject(MF, MI.getOperand(0).getReg());
430430
assert(GObj && "Unregistered global definition");
431-
auto It = GlobalToGReg.find(GObj);
432-
if (It != GlobalToGReg.end())
431+
auto [It, Inserted] = GlobalToGReg.try_emplace(GObj);
432+
if (!Inserted)
433433
return It->second;
434434
MCRegister GReg = MAI.getNextIDRegister();
435-
GlobalToGReg[GObj] = GReg;
435+
It->second = GReg;
436436
MAI.MS[SPIRV::MB_TypeConstVars].push_back(&MI);
437437
return GReg;
438438
}
@@ -605,8 +605,9 @@ void SPIRVModuleAnalysis::numberRegistersGlobally(const Module &M) {
605605
if (MI.getOpcode() != SPIRV::OpExtInst)
606606
continue;
607607
auto Set = MI.getOperand(2).getImm();
608-
if (!MAI.ExtInstSetMap.contains(Set))
609-
MAI.ExtInstSetMap[Set] = MAI.getNextIDRegister();
608+
auto [It, Inserted] = MAI.ExtInstSetMap.try_emplace(Set);
609+
if (Inserted)
610+
It->second = MAI.getNextIDRegister();
610611
}
611612
}
612613
}

0 commit comments

Comments
 (0)