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:

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)

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)

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:638

Parameters

llvm::FunctionSummary::EdgeTy E

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

Description

Return the list of <CalleeValueInfo , CalleeInfo> pairs.

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:636

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

Description

Get the synthetic entry count for this function.

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:630

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

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:692

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)

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)

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

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:616

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

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

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

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

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