llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Kazu Hirata (kazutakahirata) <details> <summary>Changes</summary> We can simplify the code with DenseMap::try_emplace and structured binding. Note that DenseMap::try_emplace default-constructs the value if omitted. --- Full diff: https://github.com/llvm/llvm-project/pull/140430.diff 1 Files Affected: - (modified) clang/lib/CodeGen/MicrosoftCXXABI.cpp (+2-7) ``````````diff diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index aa9a55ae05927..514cc1d9015ee 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -1818,9 +1818,7 @@ llvm::GlobalVariable *MicrosoftCXXABI::getAddrOfVTable(const CXXRecordDecl *RD, // VFTablesMap, thus a simple zero check is not sufficient. VFTableIdTy ID(RD, VPtrOffset); - VTablesMapTy::iterator I; - bool Inserted; - std::tie(I, Inserted) = VTablesMap.insert(std::make_pair(ID, nullptr)); + auto [I, Inserted] = VTablesMap.try_emplace(ID); if (!Inserted) return I->second; @@ -2036,10 +2034,7 @@ const VBTableGlobals & MicrosoftCXXABI::enumerateVBTables(const CXXRecordDecl *RD) { // At this layer, we can key the cache off of a single class, which is much // easier than caching each vbtable individually. - llvm::DenseMap<const CXXRecordDecl*, VBTableGlobals>::iterator Entry; - bool Added; - std::tie(Entry, Added) = - VBTablesMap.insert(std::make_pair(RD, VBTableGlobals())); + auto [Entry, Added] = VBTablesMap.try_emplace(RD); VBTableGlobals &VBGlobals = Entry->second; if (!Added) return VBGlobals; `````````` </details> https://github.com/llvm/llvm-project/pull/140430 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits