LLVM 19.0.0git
Classes | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
llvm::FunctionSummary::ParamAccess Struct Reference

Describes the uses of a parameter by the function. More...

#include "llvm/IR/ModuleSummaryIndex.h"

Classes

struct  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...
 

Public Member Functions

 ParamAccess ()=default
 
 ParamAccess (uint64_t ParamNo, const ConstantRange &Use)
 

Public Attributes

uint64_t ParamNo = 0
 
ConstantRange Use {RangeWidth, true}
 The range contains byte offsets from the parameter pointer which accessed by the function.
 
std::vector< CallCalls
 In the per-module summary, it summarizes the byte offset applied to each pointer parameter before passing to each corresponding callee.
 

Static Public Attributes

static constexpr uint32_t RangeWidth = 64
 

Detailed Description

Describes the uses of a parameter by the function.

Definition at line 797 of file ModuleSummaryIndex.h.

Constructor & Destructor Documentation

◆ ParamAccess() [1/2]

llvm::FunctionSummary::ParamAccess::ParamAccess ( )
default

◆ ParamAccess() [2/2]

llvm::FunctionSummary::ParamAccess::ParamAccess ( uint64_t  ParamNo,
const ConstantRange Use 
)
inline

Definition at line 826 of file ModuleSummaryIndex.h.

Member Data Documentation

◆ Calls

std::vector<Call> llvm::FunctionSummary::ParamAccess::Calls

In the per-module summary, it summarizes the byte offset applied to each pointer parameter before passing to each corresponding callee.

In the combined summary, it's empty and information is propagated by inter-procedural analysis and applied to the Use field.

Definition at line 823 of file ModuleSummaryIndex.h.

◆ ParamNo

uint64_t llvm::FunctionSummary::ParamAccess::ParamNo = 0

Definition at line 813 of file ModuleSummaryIndex.h.

◆ RangeWidth

constexpr uint32_t FunctionSummary::ParamAccess::RangeWidth = 64
staticconstexpr

◆ Use

ConstantRange llvm::FunctionSummary::ParamAccess::Use {RangeWidth, true}

The range contains byte offsets from the parameter pointer which accessed by the function.

In the per-module summary, it only includes accesses made by the function instructions. In the combined summary, it also includes accesses by nested function calls.

Definition at line 818 of file ModuleSummaryIndex.h.


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