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: