LLVM 22.0.0git
llvm::InstrProfValueSiteRecord Struct Reference

#include "llvm/ProfileData/InstrProf.h"

Public Member Functions

 InstrProfValueSiteRecord ()=default
 InstrProfValueSiteRecord (std::vector< InstrProfValueData > &&VD)
void sortByTargetValues ()
 Sort ValueData ascending by Value.
void sortByCount ()
 Sort ValueData Descending by Count.
LLVM_ABI void merge (InstrProfValueSiteRecord &Input, uint64_t Weight, function_ref< void(instrprof_error)> Warn)
 Merge data from another InstrProfValueSiteRecord Optionally scale merged counts by Weight.
LLVM_ABI void scale (uint64_t N, uint64_t D, function_ref< void(instrprof_error)> Warn)
 Scale up value profile data counts by N (Numerator) / D (Denominator).
LLVM_ABI void overlap (InstrProfValueSiteRecord &Input, uint32_t ValueKind, OverlapStats &Overlap, OverlapStats &FuncLevelOverlap)
 Compute the overlap b/w this record and Input record.

Public Attributes

std::vector< InstrProfValueData > ValueData
 Value profiling data pairs at a given value site.

Detailed Description

Definition at line 863 of file InstrProf.h.

Constructor & Destructor Documentation

◆ InstrProfValueSiteRecord() [1/2]

llvm::InstrProfValueSiteRecord::InstrProfValueSiteRecord ( )
default

Referenced by merge(), and overlap().

◆ InstrProfValueSiteRecord() [2/2]

llvm::InstrProfValueSiteRecord::InstrProfValueSiteRecord ( std::vector< InstrProfValueData > && VD)
inline

Definition at line 868 of file InstrProf.h.

References ValueData.

Member Function Documentation

◆ merge()

void llvm::InstrProfValueSiteRecord::merge ( InstrProfValueSiteRecord & Input,
uint64_t Weight,
function_ref< void(instrprof_error)> Warn )

Merge data from another InstrProfValueSiteRecord Optionally scale merged counts by Weight.

Definition at line 897 of file InstrProf.cpp.

References llvm::counter_overflow, I, InstrProfValueSiteRecord(), llvm::SaturatingMultiplyAdd(), sortByTargetValues(), and ValueData.

◆ overlap()

void llvm::InstrProfValueSiteRecord::overlap ( InstrProfValueSiteRecord & Input,
uint32_t ValueKind,
OverlapStats & Overlap,
OverlapStats & FuncLevelOverlap )

◆ scale()

void llvm::InstrProfValueSiteRecord::scale ( uint64_t N,
uint64_t D,
function_ref< void(instrprof_error)> Warn )

Scale up value profile data counts by N (Numerator) / D (Denominator).

Definition at line 926 of file InstrProf.cpp.

References llvm::counter_overflow, D(), I, N, llvm::SaturatingMultiply(), and ValueData.

◆ sortByCount()

void llvm::InstrProfValueSiteRecord::sortByCount ( )
inline

Sort ValueData Descending by Count.

Definition at line 1115 of file InstrProf.h.

References INSTR_PROF_MAX_NUM_VAL_PER_SITE, llvm::stable_sort(), and ValueData.

◆ sortByTargetValues()

void llvm::InstrProfValueSiteRecord::sortByTargetValues ( )
inline

Sort ValueData ascending by Value.

Definition at line 872 of file InstrProf.h.

Referenced by merge(), and overlap().

Member Data Documentation

◆ ValueData

std::vector<InstrProfValueData> llvm::InstrProfValueSiteRecord::ValueData

Value profiling data pairs at a given value site.

Definition at line 865 of file InstrProf.h.

Referenced by InstrProfValueSiteRecord(), merge(), overlap(), scale(), and sortByCount().


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