LLVM: llvm::FunctionSummary Class Reference (original) (raw)

Function summary information to aid decisions and implementation of importing. More...

#include "[llvm/IR/ModuleSummaryIndex.h](ModuleSummaryIndex%5F8h%5Fsource.html)"

Classes
struct ConstVCall
A specification for a virtual function call with all constant integer arguments. More...
struct FFlags
Flags specific to function summaries. More...
struct ParamAccess
Describes the uses of a parameter by the function. More...
struct TypeIdInfo
All type identifier related information. More...
struct VFuncId
An "identifier" for a virtual function. More...
Public Types
enum ForceSummaryHotnessType : unsigned { FSHT_None, FSHT_AllNonCritical, FSHT_All }
Types for -force-summary-edges-cold debugging option. More...
using EdgeTy = std::pair<ValueInfo, CalleeInfo>
<CalleeValueInfo, CalleeInfo> call edge pair.
Public Types inherited from llvm::GlobalValueSummary
enum SummaryKind : unsigned { AliasKind, FunctionKind, GlobalVarKind }
Sububclass discriminator (for dyn_cast<> et al.) More...
enum ImportKind : unsigned { Definition = 0 , Declaration = 1 }
Public Member Functions
FunctionSummary (GVFlags Flags, unsigned NumInsts, FFlags FunFlags, SmallVectorImpl< ValueInfo > &&Refs, SmallVectorImpl< EdgeTy > &&CGEdges, std::vector< GlobalValue::GUID > TypeTests, std::vector< VFuncId > TypeTestAssumeVCalls, std::vector< VFuncId > TypeCheckedLoadVCalls, std::vector< ConstVCall > TypeTestAssumeConstVCalls, std::vector< ConstVCall > TypeCheckedLoadConstVCalls, std::vector< ParamAccess > Params, CallsitesTy CallsiteList, AllocsTy AllocList)
LLVM_ABI std::pair< unsigned, unsigned > specialRefCounts () const
FFlags fflags () const
Get function summary flags.
void setNoRecurse ()
void setNoUnwind ()
unsigned instCount () const
Get the instruction count recorded for this function.
ArrayRef< EdgeTy > calls () const
Return the list of <CalleeValueInfo, CalleeInfo> pairs.
SmallVector< EdgeTy, 0 > & mutableCalls ()
void addCall (EdgeTy E)
ArrayRef< GlobalValue::GUID > type_tests () const
Returns the list of type identifiers used by this function in llvm.type.test intrinsics other than by an llvm.assume intrinsic, represented as GUIDs.
ArrayRef< VFuncId > type_test_assume_vcalls () const
Returns the list of virtual calls made by this function using llvm.assume(llvm.type.test) intrinsics that do not have all constant integer arguments.
ArrayRef< VFuncId > type_checked_load_vcalls () const
Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics that do not have all constant integer arguments.
ArrayRef< ConstVCall > type_test_assume_const_vcalls () const
Returns the list of virtual calls made by this function using llvm.assume(llvm.type.test) intrinsics with all constant integer arguments.
ArrayRef< ConstVCall > type_checked_load_const_vcalls () const
Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics with all constant integer arguments.
ArrayRef< ParamAccess > paramAccesses () const
Returns the list of known uses of pointer parameters.
void setParamAccesses (std::vector< ParamAccess > NewParams)
Sets the list of known uses of pointer parameters.
void addTypeTest (GlobalValue::GUID Guid)
Add a type test to the summary.
const TypeIdInfo * getTypeIdInfo () const
ArrayRef< CallsiteInfo > callsites () const
CallsitesTy & mutableCallsites ()
void addCallsite (CallsiteInfo &Callsite)
ArrayRef< AllocInfo > allocs () const
AllocsTy & mutableAllocs ()
Public Member Functions inherited from llvm::GlobalValueSummary
virtual ~GlobalValueSummary ()=default
GlobalValue::GUID getOriginalName () const
Returns the hash of the original name, it is identical to the GUID for externally visible symbols, but not for local ones.
void setOriginalName (GlobalValue::GUID Name)
Initialize the original name hash in this summary.
SummaryKind getSummaryKind () const
Which kind of summary subclass this is.
void setModulePath (StringRef ModPath)
Set the path to the module containing this function, for use in the combined index.
StringRef modulePath () const
Get the path to the module containing this function.
GVFlags flags () const
Get the flags for this GlobalValue (see struct GVFlags).
GlobalValue::LinkageTypes linkage () const
Return linkage type recorded for this global value.
void setLinkage (GlobalValue::LinkageTypes Linkage)
Sets the linkage to the value determined by global summary-based optimization.
bool notEligibleToImport () const
Return true if this global value can't be imported.
bool isLive () const
void setLive (bool Live)
void setDSOLocal (bool Local)
bool isDSOLocal () const
void setCanAutoHide (bool CanAutoHide)
bool canAutoHide () const
bool shouldImportAsDecl () const
void setImportKind (ImportKind IK)
GlobalValueSummary::ImportKind importType () const
GlobalValue::VisibilityTypes getVisibility () const
void setVisibility (GlobalValue::VisibilityTypes Vis)
void setNotEligibleToImport ()
Flag that this global value cannot be imported.
ArrayRef< ValueInfo > refs () const
Return the list of values referenced by this global value definition.
GlobalValueSummary * getBaseObject ()
If this is an alias summary, returns the summary of the aliased object (a global variable or function), otherwise returns itself.
const GlobalValueSummary * getBaseObject () const
Static Public Attributes
static LLVM_ABI FunctionSummary ExternalNode
A dummy node to reference external functions that aren't in the index.
Friends
struct GraphTraits< ValueInfo >

Function summary information to aid decisions and implementation of importing.

Definition at line 758 of file ModuleSummaryIndex.h.

EdgeTy

ForceSummaryHotnessType

Types for -force-summary-edges-cold debugging option.

Enumerator
FSHT_None
FSHT_AllNonCritical
FSHT_All

Definition at line 764 of file ModuleSummaryIndex.h.

llvm::FunctionSummary::FunctionSummary ( GVFlags Flags, unsigned NumInsts, FFlags FunFlags, SmallVectorImpl< ValueInfo > && Refs, SmallVectorImpl< EdgeTy > && CGEdges, std::vector< GlobalValue::GUID > TypeTests, std::vector< VFuncId > TypeTestAssumeVCalls, std::vector< VFuncId > TypeCheckedLoadVCalls, std::vector< ConstVCall > TypeTestAssumeConstVCalls, std::vector< ConstVCall > TypeCheckedLoadConstVCalls, std::vector< ParamAccess > Params, CallsitesTy CallsiteList, AllocsTy AllocList ) inline

addCall()

void llvm::FunctionSummary::addCall ( EdgeTy E) inline

addCallsite()

void llvm::FunctionSummary::addCallsite ( CallsiteInfo & Callsite) inline

addTypeTest()

Add a type test to the summary.

This is used by WholeProgramDevirt if we were unable to devirtualize a checked call.

Definition at line 1088 of file ModuleSummaryIndex.h.

References llvm::Guid.

allocs()

calls()

ArrayRef< EdgeTy > llvm::FunctionSummary::calls ( ) const inline

callsites()

classof()

fflags()

FFlags llvm::FunctionSummary::fflags ( ) const inline

getTypeIdInfo()

instCount()

unsigned llvm::FunctionSummary::instCount ( ) const inline

makeDummyFunctionSummary()

mutableAllocs()

AllocsTy & llvm::FunctionSummary::mutableAllocs ( ) inline

mutableCalls()

SmallVector< EdgeTy, 0 > & llvm::FunctionSummary::mutableCalls ( ) inline

mutableCallsites()

CallsitesTy & llvm::FunctionSummary::mutableCallsites ( ) inline

paramAccesses()

setNoRecurse()

void llvm::FunctionSummary::setNoRecurse ( ) inline

setNoUnwind()

void llvm::FunctionSummary::setNoUnwind ( ) inline

setParamAccesses()

void llvm::FunctionSummary::setParamAccesses ( std::vector< ParamAccess > NewParams) inline

specialRefCounts()

type_checked_load_const_vcalls()

ArrayRef< ConstVCall > llvm::FunctionSummary::type_checked_load_const_vcalls ( ) const inline

Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics with all constant integer arguments.

Definition at line 1063 of file ModuleSummaryIndex.h.

type_checked_load_vcalls()

ArrayRef< VFuncId > llvm::FunctionSummary::type_checked_load_vcalls ( ) const inline

Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics that do not have all constant integer arguments.

Definition at line 1046 of file ModuleSummaryIndex.h.

type_test_assume_const_vcalls()

ArrayRef< ConstVCall > llvm::FunctionSummary::type_test_assume_const_vcalls ( ) const inline

Returns the list of virtual calls made by this function using llvm.assume(llvm.type.test) intrinsics with all constant integer arguments.

Definition at line 1055 of file ModuleSummaryIndex.h.

type_test_assume_vcalls()

ArrayRef< VFuncId > llvm::FunctionSummary::type_test_assume_vcalls ( ) const inline

Returns the list of virtual calls made by this function using llvm.assume(llvm.type.test) intrinsics that do not have all constant integer arguments.

Definition at line 1037 of file ModuleSummaryIndex.h.

type_tests()

Returns the list of type identifiers used by this function in llvm.type.test intrinsics other than by an llvm.assume intrinsic, represented as GUIDs.

Definition at line 1028 of file ModuleSummaryIndex.h.

GraphTraits< ValueInfo >

ExternalNode


The documentation for this class was generated from the following files: