LLVM 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
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/IR/ConstantRange.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Allocator.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
 
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 = std::map< GlobalValue::GUID, GlobalValueSummaryInfo >
 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 = std::map< std::string, GVSummaryMapTy, std::less<> >
 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 = std::multimap< GlobalValue::GUID, std::pair< StringRef, TypeIdSummary > >
 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_ostream & llvm::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_ostream & llvm::operator<< (raw_ostream &OS, const CallsiteInfo &SNI)
 
raw_ostream & llvm::operator<< (raw_ostream &OS, const MIBInfo &MIB)
 
raw_ostream & llvm::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.