diff --git a/llvm/include/llvm/Transforms/IPO/FunctionImport.h b/llvm/include/llvm/Transforms/IPO/FunctionImport.h index 78932c12e76ff..b7280c56be9cc 100644 --- a/llvm/include/llvm/Transforms/IPO/FunctionImport.h +++ b/llvm/include/llvm/Transforms/IPO/FunctionImport.h @@ -143,6 +143,10 @@ class FunctionImporter { // order. SmallVector getSourceModules() const; + std::optional + getImportType(const FunctionsToImportTy &GUIDToImportType, + GlobalValue::GUID GUID) const; + const ImportMapTyImpl &getImportMap() const { return ImportMap; } private: diff --git a/llvm/lib/Transforms/IPO/FunctionImport.cpp b/llvm/lib/Transforms/IPO/FunctionImport.cpp index 6227b085f13a6..7a60ae51f02cb 100644 --- a/llvm/lib/Transforms/IPO/FunctionImport.cpp +++ b/llvm/lib/Transforms/IPO/FunctionImport.cpp @@ -359,6 +359,15 @@ FunctionImporter::ImportMapTy::getSourceModules() const { return Modules; } +std::optional +FunctionImporter::ImportMapTy::getImportType( + const FunctionsToImportTy &GUIDToImportType, GlobalValue::GUID GUID) const { + auto Iter = GUIDToImportType.find(GUID); + if (Iter == GUIDToImportType.end()) + return std::nullopt; + return Iter->second; +} + /// Import globals referenced by a function or other globals that are being /// imported, if importing such global is possible. class GlobalsImporter final { @@ -1800,15 +1809,6 @@ Expected FunctionImporter::importFunctions( IRMover Mover(DestModule); - auto getImportType = [&](const FunctionsToImportTy &GUIDToImportType, - GlobalValue::GUID GUID) - -> std::optional { - auto Iter = GUIDToImportType.find(GUID); - if (Iter == GUIDToImportType.end()) - return std::nullopt; - return Iter->second; - }; - // Do the actual import of functions now, one Module at a time for (const auto &Name : ImportList.getSourceModules()) { // Get the module for the import @@ -1835,7 +1835,7 @@ Expected FunctionImporter::importFunctions( if (!F.hasName()) continue; auto GUID = F.getGUID(); - auto MaybeImportType = getImportType(ImportGUIDs, GUID); + auto MaybeImportType = ImportList.getImportType(ImportGUIDs, GUID); bool ImportDefinition = MaybeImportType == GlobalValueSummary::Definition; LLVM_DEBUG(dbgs() << (MaybeImportType ? "Is" : "Not") @@ -1871,7 +1871,7 @@ Expected FunctionImporter::importFunctions( if (!GV.hasName()) continue; auto GUID = GV.getGUID(); - auto MaybeImportType = getImportType(ImportGUIDs, GUID); + auto MaybeImportType = ImportList.getImportType(ImportGUIDs, GUID); bool ImportDefinition = MaybeImportType == GlobalValueSummary::Definition; LLVM_DEBUG(dbgs() << (MaybeImportType ? "Is" : "Not") @@ -1891,7 +1891,7 @@ Expected FunctionImporter::importFunctions( if (!GA.hasName() || isa(GA.getAliaseeObject())) continue; auto GUID = GA.getGUID(); - auto MaybeImportType = getImportType(ImportGUIDs, GUID); + auto MaybeImportType = ImportList.getImportType(ImportGUIDs, GUID); bool ImportDefinition = MaybeImportType == GlobalValueSummary::Definition; LLVM_DEBUG(dbgs() << (MaybeImportType ? "Is" : "Not")