LLVM 20.0.0git
|
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 char * | llvm::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) |
ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and summary for function importing.
Definition in file ModuleSummaryIndex.h.