class FunctionSummary
Declaration
class FunctionSummary : public GlobalValueSummary { /* full declaration omitted */ };
Description
Function summary information to aid decisions and implementation of importing.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:491
Inherits from: GlobalValueSummary
Member Variables
- public static llvm::FunctionSummary ExternalNode
- A dummy node to reference external functions that aren't in the index
Method Overview
- public FunctionSummary(llvm::GlobalValueSummary::GVFlags Flags, unsigned int NumInsts, llvm::FunctionSummary::FFlags FunFlags, uint64_t EntryCount, std::vector<ValueInfo> Refs, std::vector<EdgeTy> CGEdges, std::vector<GlobalValue::GUID> TypeTests, std::vector<VFuncId> TypeTestAssumeVCalls, std::vector<VFuncId> TypeCheckedLoadVCalls, std::vector<ConstVCall> TypeTestAssumeConstVCalls, std::vector<ConstVCall> TypeCheckedLoadConstVCalls)
- public void addCall(llvm::FunctionSummary::EdgeTy E)
- public void addTypeTest(GlobalValue::GUID Guid)
- public ArrayRef<llvm::FunctionSummary::EdgeTy> calls() const
- public static bool classof(const llvm::GlobalValueSummary * GVS)
- public uint64_t entryCount() const
- public llvm::FunctionSummary::FFlags fflags() const
- public const llvm::FunctionSummary::TypeIdInfo * getTypeIdInfo() const
- public unsigned int instCount() const
- public static llvm::FunctionSummary makeDummyFunctionSummary(std::vector<FunctionSummary::EdgeTy> Edges)
- public void setEntryCount(uint64_t EC)
- public std::pair<unsigned int, unsigned int> specialRefCounts() const
- public ArrayRef<llvm::FunctionSummary::ConstVCall> type_checked_load_const_vcalls() const
- public ArrayRef<llvm::FunctionSummary::VFuncId> type_checked_load_vcalls() const
- public ArrayRef<llvm::FunctionSummary::ConstVCall> type_test_assume_const_vcalls() const
- public ArrayRef<llvm::FunctionSummary::VFuncId> type_test_assume_vcalls() const
- public ArrayRef<GlobalValue::GUID> type_tests() const
Inherited from GlobalValueSummary:
- public canAutoHide
- public flags
- public getBaseObject
- public getBaseObject
- public getOriginalName
- public getSummaryKind
- public isDSOLocal
- public isLive
- public linkage
- public modulePath
- public notEligibleToImport
- public refs
- public setCanAutoHide
- public setDSOLocal
- public setLinkage
- public setLive
- public setModulePath
- public setNotEligibleToImport
- public setOriginalName
Methods
¶FunctionSummary(
llvm::GlobalValueSummary::GVFlags Flags,
unsigned int NumInsts,
llvm::FunctionSummary::FFlags FunFlags,
uint64_t EntryCount,
std::vector<ValueInfo> Refs,
std::vector<EdgeTy> CGEdges,
std::vector<GlobalValue::GUID> TypeTests,
std::vector<VFuncId> TypeTestAssumeVCalls,
std::vector<VFuncId> TypeCheckedLoadVCalls,
std::vector<ConstVCall>
TypeTestAssumeConstVCalls,
std::vector<ConstVCall>
TypeCheckedLoadConstVCalls)
FunctionSummary(
llvm::GlobalValueSummary::GVFlags Flags,
unsigned int NumInsts,
llvm::FunctionSummary::FFlags FunFlags,
uint64_t EntryCount,
std::vector<ValueInfo> Refs,
std::vector<EdgeTy> CGEdges,
std::vector<GlobalValue::GUID> TypeTests,
std::vector<VFuncId> TypeTestAssumeVCalls,
std::vector<VFuncId> TypeCheckedLoadVCalls,
std::vector<ConstVCall>
TypeTestAssumeConstVCalls,
std::vector<ConstVCall>
TypeCheckedLoadConstVCalls)
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:595
Parameters
- llvm::GlobalValueSummary::GVFlags Flags
- unsigned int NumInsts
- llvm::FunctionSummary::FFlags FunFlags
- uint64_t EntryCount
- std::vector<ValueInfo> Refs
- std::vector<EdgeTy> CGEdges
- std::vector<GlobalValue::GUID> TypeTests
- std::vector<VFuncId> TypeTestAssumeVCalls
- std::vector<VFuncId> TypeCheckedLoadVCalls
- std::vector<ConstVCall> TypeTestAssumeConstVCalls
- std::vector<ConstVCall> TypeCheckedLoadConstVCalls
¶void addCall(llvm::FunctionSummary::EdgeTy E)
void addCall(llvm::FunctionSummary::EdgeTy E)
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:638
Parameters
- llvm::FunctionSummary::EdgeTy E
¶void addTypeTest(GlobalValue::GUID Guid)
void addTypeTest(GlobalValue::GUID Guid)
Description
Add a type test to the summary. This is used by WholeProgramDevirt if we were unable to devirtualize a checked call.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:686
Parameters
- GlobalValue::GUID Guid
¶ArrayRef<llvm::FunctionSummary::EdgeTy> calls()
const
ArrayRef<llvm::FunctionSummary::EdgeTy> calls()
const
Description
Return the list of <CalleeValueInfo , CalleeInfo> pairs.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:636
¶static bool classof(
const llvm::GlobalValueSummary* GVS)
static bool classof(
const llvm::GlobalValueSummary* GVS)
Description
Check if this is a function summary.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:619
Parameters
- const llvm::GlobalValueSummary* GVS
¶uint64_t entryCount() const
uint64_t entryCount() const
Description
Get the synthetic entry count for this function.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:630
¶llvm::FunctionSummary::FFlags fflags() const
llvm::FunctionSummary::FFlags fflags() const
Description
Get function summary flags.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:624
¶const llvm::FunctionSummary::TypeIdInfo*
getTypeIdInfo() const
const llvm::FunctionSummary::TypeIdInfo*
getTypeIdInfo() const
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:692
¶unsigned int instCount() const
unsigned int instCount() const
Description
Get the instruction count recorded for this function.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:627
¶static llvm::FunctionSummary
makeDummyFunctionSummary(
std::vector<FunctionSummary::EdgeTy> Edges)
static llvm::FunctionSummary
makeDummyFunctionSummary(
std::vector<FunctionSummary::EdgeTy> Edges)
Description
Create an empty FunctionSummary (with specified call edges). Used to represent external nodes and the dummy root node.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:558
Parameters
- std::vector<FunctionSummary::EdgeTy> Edges
¶void setEntryCount(uint64_t EC)
void setEntryCount(uint64_t EC)
Description
Set the synthetic entry count for this function.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:633
Parameters
- uint64_t EC
¶std::pair<unsigned int, unsigned int>
specialRefCounts() const
std::pair<unsigned int, unsigned int>
specialRefCounts() const
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:616
¶ArrayRef<llvm::FunctionSummary::ConstVCall>
type_checked_load_const_vcalls() const
ArrayRef<llvm::FunctionSummary::ConstVCall>
type_checked_load_const_vcalls() const
Description
Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics with all constant integer arguments.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:678
¶ArrayRef<llvm::FunctionSummary::VFuncId>
type_checked_load_vcalls() const
ArrayRef<llvm::FunctionSummary::VFuncId>
type_checked_load_vcalls() const
Description
Returns the list of virtual calls made by this function using llvm.type.checked.load intrinsics that do not have all constant integer arguments.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:661
¶ArrayRef<llvm::FunctionSummary::ConstVCall>
type_test_assume_const_vcalls() const
ArrayRef<llvm::FunctionSummary::ConstVCall>
type_test_assume_const_vcalls() const
Description
Returns the list of virtual calls made by this function using llvm.assume(llvm.type.test) intrinsics with all constant integer arguments.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:670
¶ArrayRef<llvm::FunctionSummary::VFuncId>
type_test_assume_vcalls() const
ArrayRef<llvm::FunctionSummary::VFuncId>
type_test_assume_vcalls() const
Description
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.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:652
¶ArrayRef<GlobalValue::GUID> type_tests() const
ArrayRef<GlobalValue::GUID> type_tests() const
Description
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.
Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:643