LLVM 22.0.0git
ModuleSummaryIndex.h File Reference

ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and summary for function importing. More...

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/InterleavedRange.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/ScaledNumber.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <array>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <unordered_set>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  llvm::CalleeInfo
 Class to accumulate and hold information about a callee. More...
struct  llvm::GlobalValueSummaryInfo
union  llvm::GlobalValueSummaryInfo::NameOrGV
struct  llvm::ValueInfo
 Struct that holds a reference to a particular GUID in a global value summary. More...
struct  llvm::DenseMapInfo< ValueInfo >
struct  llvm::ContextTotalSize
struct  llvm::CallsiteInfo
 Summary of memprof callsite metadata. More...
struct  llvm::MIBInfo
 Summary of a single MIB in a memprof metadata on allocations. More...
struct  llvm::AllocInfo
 Summary of memprof metadata on allocations. More...
class  llvm::GlobalValueSummary
 Function and variable summary information to aid decisions and implementation of importing. More...
struct  llvm::GlobalValueSummary::GVFlags
 Group flags (Linkage, NotEligibleToImport, etc.) as a bitfield. More...
class  llvm::AliasSummary
 Alias summary information. More...
class  llvm::FunctionSummary
 Function summary information to aid decisions and implementation of importing. More...
struct  llvm::FunctionSummary::VFuncId
 An "identifier" for a virtual function. More...
struct  llvm::FunctionSummary::ConstVCall
 A specification for a virtual function call with all constant integer arguments. More...
struct  llvm::FunctionSummary::TypeIdInfo
 All type identifier related information. More...
struct  llvm::FunctionSummary::FFlags
 Flags specific to function summaries. More...
struct  llvm::FunctionSummary::ParamAccess
 Describes the uses of a parameter by the function. More...
struct  llvm::FunctionSummary::ParamAccess::Call
 Describes the use of a value in a call instruction, specifying the call's target, the value's parameter number, and the possible range of offsets from the beginning of the value that are passed. More...
struct  llvm::DenseMapInfo< FunctionSummary::VFuncId >
struct  llvm::DenseMapInfo< FunctionSummary::ConstVCall >
struct  llvm::VirtFuncOffset
 The ValueInfo and offset for a function within a vtable definition initializer array. More...
class  llvm::GlobalVarSummary
 Global variable summary information to aid decisions and implementation of importing. More...
struct  llvm::GlobalVarSummary::GVarFlags
struct  llvm::TypeTestResolution
struct  llvm::WholeProgramDevirtResolution
struct  llvm::WholeProgramDevirtResolution::ByArg
struct  llvm::TypeIdSummary
class  llvm::CfiFunctionIndex
class  llvm::CfiFunctionIndex::GUIDIterator
struct  llvm::TypeIdOffsetVtableInfo
 The following data structures summarize type metadata information. More...
class  llvm::ModuleSummaryIndex
 Class to hold module path string table and global value map, and encapsulate methods for operating on them. More...
struct  llvm::GraphTraits< ValueInfo >
 GraphTraits definition to build SCC for the index. More...
struct  llvm::GraphTraits< ModuleSummaryIndex * >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::yaml

Typedefs

using llvm::GlobalValueSummaryList = std::vector<std::unique_ptr<GlobalValueSummary>>
using llvm::GlobalValueSummaryMapTy
 Map from global value GUID to corresponding summary structures.
using llvm::VTableFuncList = std::vector<VirtFuncOffset>
 List of functions referenced by a particular vtable definition.
using llvm::ModuleHash = std::array<uint32_t, 5>
 160 bits SHA1
using llvm::const_gvsummary_iterator = GlobalValueSummaryMapTy::const_iterator
 Type used for iterating through the global value summary map.
using llvm::gvsummary_iterator = GlobalValueSummaryMapTy::iterator
using llvm::ModulePathStringTableTy = StringMap<ModuleHash>
 String table to hold/own module path strings, as well as a hash of the module.
using llvm::GVSummaryMapTy = DenseMap<GlobalValue::GUID, GlobalValueSummary *>
 Map of global value GUID to its summary, used to identify values defined in a particular module, and provide efficient access to their summary.
using llvm::ModuleToSummariesForIndexTy
 Map of a module name to the GUIDs and summaries we will import from that module.
using llvm::GVSummaryPtrSet = std::unordered_set<GlobalValueSummary *>
 A set of global value summary pointers.
using llvm::TypeIdSummaryMapTy
 Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts).
using llvm::TypeIdCompatibleVtableInfo = std::vector<TypeIdOffsetVtableInfo>
 List of vtable definitions decorated by a particular type identifier, and their corresponding offsets in that type identifier's metadata.

Enumerations

enum class  llvm::AllocationType : uint8_t {
  llvm::None = 0 , llvm::NotCold = 1 , llvm::Cold = 2 , llvm::Hot = 4 ,
  llvm::All = 7
}

Functions

const charllvm::getHotnessName (CalleeInfo::HotnessType HT)
raw_ostreamllvm::operator<< (raw_ostream &OS, const ValueInfo &VI)
bool llvm::operator== (const ValueInfo &A, const ValueInfo &B)
bool llvm::operator!= (const ValueInfo &A, const ValueInfo &B)
bool llvm::operator< (const ValueInfo &A, const ValueInfo &B)
raw_ostreamllvm::operator<< (raw_ostream &OS, const CallsiteInfo &SNI)
raw_ostreamllvm::operator<< (raw_ostream &OS, const MIBInfo &MIB)
raw_ostreamllvm::operator<< (raw_ostream &OS, const AllocInfo &AE)

Detailed Description

ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and summary for function importing.

Definition in file ModuleSummaryIndex.h.