Computes a unique hash for the Module considering the current list of export/import and other global analysis results.

Synopsis

Declared in <llvm/LTO/LTO.h>

std::string
computeLTOCacheKey(
    lto::Config const& Conf,
    ModuleSummaryIndex const& Index,
    StringRef ModuleID,
    FunctionImporter::ImportMapTy const& ImportList,
    FunctionImporter::ExportSetTy const& ExportList,
    std::map<GlobalValue::GUID, GlobalValue::LinkageTypes> const& ResolvedODR,
    GVSummaryMapTy const& DefinedGlobals,
    DenseSet<GlobalValue::GUID> const& CfiFunctionDefs = {},
    DenseSet<GlobalValue::GUID> const& CfiFunctionDecls = {});

Parameters

Name

Description

Conf

LTO configuration. A linker can configure LTO by setting fields in this data structure and passing it to the lto::LTO constructor.

Index

Class to hold module path string table and global value map, and encapsulate methods for operating on them.

ModuleID

Represent a constant reference to a string, i.e. a character array and a length, which need not be null terminated.

ImportList

The map maintains the list of imports. Conceptually, it is a collection of tuples of the form:

ExportList

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.

ResolvedODR

A standard container made up of (key,value) pairs, which can be retrieved based on a key, in logarithmic time.

DefinedGlobals

Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary.

CfiFunctionDefs

Implements a dense probed hash‐table based set.

CfiFunctionDecls

Implements a dense probed hash‐table based set.

Created with MrDocs