Skip to content

Commit fe6290e

Browse files
[llvm] Use *Map::try_emplace (NFC) (#140843)
try_emplace can default-construct values, so we do not need to do so on our own. Plus, try_emplace(Key) is much shorter than insert(std::make_pair(Key, Value()).
1 parent ad05543 commit fe6290e

File tree

9 files changed

+16
-24
lines changed

9 files changed

+16
-24
lines changed

llvm/lib/Analysis/MLInlineAdvisor.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,7 @@ int64_t MLInlineAdvisor::getModuleIRSize() const {
330330
}
331331

332332
FunctionPropertiesInfo &MLInlineAdvisor::getCachedFPI(Function &F) const {
333-
auto InsertPair =
334-
FPICache.insert(std::make_pair(&F, FunctionPropertiesInfo()));
333+
auto InsertPair = FPICache.try_emplace(&F);
335334
if (!InsertPair.second)
336335
return InsertPair.first->second;
337336
InsertPair.first->second = FAM.getResult<FunctionPropertiesAnalysis>(F);

llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ DwarfStringPool::DwarfStringPool(BumpPtrAllocator &A, AsmPrinter &Asm,
2424

2525
StringMapEntry<DwarfStringPool::EntryTy> &
2626
DwarfStringPool::getEntryImpl(AsmPrinter &Asm, StringRef Str) {
27-
auto I = Pool.insert(std::make_pair(Str, EntryTy()));
27+
auto I = Pool.try_emplace(Str);
2828
auto &Entry = I.first->second;
2929
if (I.second) {
3030
Entry.Index = EntryTy::NotIndexed;

llvm/lib/LTO/LTOModule.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,7 @@ void LTOModule::addObjCClass(const GlobalVariable *clgv) {
271271
// second slot in __OBJC,__class is pointer to superclass name
272272
std::string superclassName;
273273
if (objcClassNameFromExpression(c->getOperand(1), superclassName)) {
274-
auto IterBool =
275-
_undefines.insert(std::make_pair(superclassName, NameAndAttributes()));
274+
auto IterBool = _undefines.try_emplace(superclassName);
276275
if (IterBool.second) {
277276
NameAndAttributes &info = IterBool.first->second;
278277
info.name = IterBool.first->first();
@@ -307,8 +306,7 @@ void LTOModule::addObjCCategory(const GlobalVariable *clgv) {
307306
if (!objcClassNameFromExpression(c->getOperand(1), targetclassName))
308307
return;
309308

310-
auto IterBool =
311-
_undefines.insert(std::make_pair(targetclassName, NameAndAttributes()));
309+
auto IterBool = _undefines.try_emplace(targetclassName);
312310

313311
if (!IterBool.second)
314312
return;
@@ -326,8 +324,7 @@ void LTOModule::addObjCClassRef(const GlobalVariable *clgv) {
326324
if (!objcClassNameFromExpression(clgv->getInitializer(), targetclassName))
327325
return;
328326

329-
auto IterBool =
330-
_undefines.insert(std::make_pair(targetclassName, NameAndAttributes()));
327+
auto IterBool = _undefines.try_emplace(targetclassName);
331328

332329
if (!IterBool.second)
333330
return;
@@ -522,7 +519,7 @@ void LTOModule::addAsmGlobalSymbol(StringRef name,
522519
/// addAsmGlobalSymbolUndef - Add a global symbol from module-level ASM to the
523520
/// undefined list.
524521
void LTOModule::addAsmGlobalSymbolUndef(StringRef name) {
525-
auto IterBool = _undefines.insert(std::make_pair(name, NameAndAttributes()));
522+
auto IterBool = _undefines.try_emplace(name);
526523

527524
_asm_undefines.push_back(IterBool.first->first());
528525

@@ -549,8 +546,7 @@ void LTOModule::addPotentialUndefinedSymbol(ModuleSymbolTable::Symbol Sym,
549546
name.c_str();
550547
}
551548

552-
auto IterBool =
553-
_undefines.insert(std::make_pair(name.str(), NameAndAttributes()));
549+
auto IterBool = _undefines.try_emplace(name.str());
554550

555551
// we already have the symbol
556552
if (!IterBool.second)

llvm/lib/Target/Hexagon/HexagonGenMux.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,8 +245,7 @@ bool HexagonGenMux::genMuxInBlock(MachineBasicBlock &B) {
245245
F = CM.end();
246246
}
247247
if (F == CM.end()) {
248-
auto It = CM.insert(std::make_pair(DR, CondsetInfo()));
249-
F = It.first;
248+
F = CM.try_emplace(DR).first;
250249
F->second.PredR = PR;
251250
}
252251
CondsetInfo &CI = F->second;

llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ bool TruncInstCombine::buildTruncExpressionGraph() {
110110
Worklist.pop_back();
111111
Stack.pop_back();
112112
// Insert I to the Info map.
113-
InstInfoMap.insert(std::make_pair(I, Info()));
113+
InstInfoMap.try_emplace(I);
114114
continue;
115115
}
116116

llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,7 @@ class RegUseTracker {
413413

414414
void
415415
RegUseTracker::countRegister(const SCEV *Reg, size_t LUIdx) {
416-
std::pair<RegUsesTy::iterator, bool> Pair =
417-
RegUsesMap.insert(std::make_pair(Reg, RegSortData()));
416+
std::pair<RegUsesTy::iterator, bool> Pair = RegUsesMap.try_emplace(Reg);
418417
RegSortData &RSD = Pair.first->second;
419418
if (Pair.second)
420419
RegSequence.push_back(Reg);
@@ -4478,7 +4477,7 @@ void LSRInstance::GenerateCrossUseConstantOffsets() {
44784477
for (const SCEV *Use : RegUses) {
44794478
const SCEV *Reg = Use; // Make a copy for ExtractImmediate to modify.
44804479
Immediate Imm = ExtractImmediate(Reg, SE);
4481-
auto Pair = Map.insert(std::make_pair(Reg, ImmMapTy()));
4480+
auto Pair = Map.try_emplace(Reg);
44824481
if (Pair.second)
44834482
Sequence.push_back(Reg);
44844483
Pair.first->second.insert(std::make_pair(Imm, Use));

llvm/lib/Transforms/Utils/SCCPSolver.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ class SCCPInstVisitor : public InstVisitor<SCCPInstVisitor> {
524524
ValueLatticeElement &getValueState(Value *V) {
525525
assert(!V->getType()->isStructTy() && "Should use getStructValueState");
526526

527-
auto I = ValueState.insert(std::make_pair(V, ValueLatticeElement()));
527+
auto I = ValueState.try_emplace(V);
528528
ValueLatticeElement &LV = I.first->second;
529529

530530
if (!I.second)
@@ -765,10 +765,9 @@ class SCCPInstVisitor : public InstVisitor<SCCPInstVisitor> {
765765
if (auto *STy = dyn_cast<StructType>(F->getReturnType())) {
766766
MRVFunctionsTracked.insert(F);
767767
for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i)
768-
TrackedMultipleRetVals.insert(
769-
std::make_pair(std::make_pair(F, i), ValueLatticeElement()));
768+
TrackedMultipleRetVals.try_emplace(std::make_pair(F, i));
770769
} else if (!F->getReturnType()->isVoidTy())
771-
TrackedRetVals.insert(std::make_pair(F, ValueLatticeElement()));
770+
TrackedRetVals.try_emplace(F);
772771
}
773772

774773
void addToMustPreserveReturnsInFunctions(Function *F) {

llvm/lib/Transforms/Utils/ValueMapper.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ MDNode *MDNodeMapper::visitOperands(UniquedGraph &G, MDNode::op_iterator &I,
773773
MDNode &OpN = *cast<MDNode>(Op);
774774
assert(OpN.isUniqued() &&
775775
"Only uniqued operands cannot be mapped immediately");
776-
if (G.Info.insert(std::make_pair(&OpN, Data())).second)
776+
if (G.Info.try_emplace(&OpN).second)
777777
return &OpN; // This is a new one. Return it.
778778
}
779779
return nullptr;

llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ void PressureTracker::getResourceUsers(uint64_t ResourceMask,
5858
}
5959

6060
void PressureTracker::onInstructionDispatched(unsigned IID) {
61-
IPI.insert(std::make_pair(IID, InstructionPressureInfo()));
61+
IPI.try_emplace(IID);
6262
}
6363

6464
void PressureTracker::onInstructionExecuted(unsigned IID) { IPI.erase(IID); }

0 commit comments

Comments
 (0)