LLVM: llvm::FunctionImporter Class Reference (original) (raw)
The function importer is automatically importing function from other modules based on the provided summary informations. More...
#include "[llvm/Transforms/IPO/FunctionImport.h](FunctionImport%5F8h%5Fsource.html)"
| Classes | |
|---|---|
| struct | ImportFailureInfo |
| Information optionally tracked for candidates the importer decided not to import. More... | |
| class | ImportIDTable |
| class | ImportListsTy |
| class | ImportMapTy |
| The map maintains the list of imports. More... | |
| class | SortedImportList |
| Public Types | |
|---|---|
| enum class | ImportFailureReason { None, GlobalVar, NotLive, TooLarge, InterposableLinkage, LocalLinkageNotInModule, NotEligible, NoInline } |
| The different reasons selectCallee will chose not to import a candidate. More... | |
| using | ImportThresholdsTy |
| Map of callee GUID considered for import into a given module to a pair consisting of the largest threshold applied when deciding whether to import it and, if we decided to import, a pointer to the summary instance imported. | |
| using | ExportSetTy = DenseSet<ValueInfo> |
| The set contains an entry for every global value that the module exports. | |
| using | ModuleLoaderTy |
| A function of this type is used to load modules referenced by the index. |
The function importer is automatically importing function from other modules based on the provided summary informations.
Definition at line 31 of file FunctionImport.h.
◆ ExportSetTy
The set contains an entry for every global value that the module exports.
Depending on the user context, this container is allowed to contain definitions, declarations or a mix of both.
Definition at line 305 of file FunctionImport.h.
◆ ImportThresholdsTy
Initial value:
std::unique_ptr>>
Function and variable summary information to aid decisions and implementation of importing.
uint64_t GUID
Declare a type to represent a global unique identifier for a global value.
Map of callee GUID considered for import into a given module to a pair consisting of the largest threshold applied when deciding whether to import it and, if we decided to import, a pointer to the summary instance imported.
If we decided not to import, the summary will be nullptr.
Definition at line 84 of file FunctionImport.h.
◆ ModuleLoaderTy
Initial value:
std::function<Expected<std::unique_ptr>(StringRef Identifier)>
StringRef - Represent a constant reference to a string, i.e.
A function of this type is used to load modules referenced by the index.
Definition at line 308 of file FunctionImport.h.
◆ ImportFailureReason
The different reasons selectCallee will chose not to import a candidate.
| Enumerator |
|---|
| None |
| GlobalVar |
| NotLive |
| TooLarge |
| InterposableLinkage |
| LocalLinkageNotInModule |
| NotEligible |
| NoInline |
Definition at line 35 of file FunctionImport.h.
◆ importFunctions()
Import functions in Module M based on the supplied import list.
Definition at line 1873 of file FunctionImport.cpp.
References assert(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), llvm::createStringError(), llvm::dbgs(), llvm::GlobalValueSummary::Definition, llvm::EnableImportMetadata, llvm::EnableMemProfContextDisambiguation, F, llvm::MDNode::get(), llvm::GlobalValue::getAliaseeObject(), llvm::SetVector< T, Vector, Set, N >::getArrayRef(), llvm::Module::getContext(), llvm::GlobalValue::getGUID(), llvm::FunctionImporter::ImportMapTy::getImportType(), llvm::Module::getModuleIdentifier(), llvm::Value::getName(), llvm::Module::getSourceFileName(), llvm::FunctionImporter::ImportMapTy::getSourceModules(), llvm::SetVector< T, Vector, Set, N >::insert(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert_range(), internalizeGVsAfterImport(), llvm::invalid_argument, llvm::isa(), LLVM_DEBUG, llvm::GlobalValue::materialize(), llvm::IRMover::move(), llvm::MoveSymbolGUID, llvm::PrintImports, llvm::renameModuleForThinLTO(), replaceAliasWithAliasee(), llvm::SetVector< T, Vector, Set, N >::size(), llvm::Expected< T >::takeError(), llvm::toString(), and llvm::UpgradeDebugInfo().
Referenced by crossImportIntoModule(), doImportingForModuleForTest(), and llvm::lto::thinBackend().
The documentation for this class was generated from the following files:
- include/llvm/Transforms/IPO/FunctionImport.h
- lib/Transforms/IPO/FunctionImport.cpp