LLVM: llvm::sampleprof::SampleRecord Class Reference (original) (raw)
Representation of a single sample record. More...
#include "[llvm/ProfileData/SampleProf.h](SampleProf%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| SampleRecord ()=default | |
| sampleprof_error | addSamples (uint64_t S, uint64_t Weight=1) |
| Increment the number of samples for this record by S. | |
| uint64_t | removeSamples (uint64_t S) |
| Decrease the number of samples for this record by S. | |
| sampleprof_error | addCalledTarget (FunctionId F, uint64_t S, uint64_t Weight=1) |
| Add called function F with samples S. | |
| uint64_t | removeCalledTarget (FunctionId F) |
| Remove called function from the call target map. | |
| bool | hasCalls () const |
| Return true if this sample record contains function calls. | |
| uint64_t | getSamples () const |
| const CallTargetMap & | getCallTargets () const |
| const SortedCallTargetSet | getSortedCallTargets () const |
| uint64_t | getCallTargetSum () const |
| LLVM_ABI sampleprof_error | merge (const SampleRecord &Other, uint64_t Weight=1) |
| Merge the samples in Other into this record. | |
| LLVM_ABI void | print (raw_ostream &OS, unsigned Indent) const |
| Print the sample record to the stream OS indented by Indent. | |
| LLVM_ABI void | dump () const |
| LLVM_ABI std::error_code | serialize (raw_ostream &OS, const MapVector< FunctionId, uint32_t > &NameTable) const |
| Serialize the sample record to the output stream using ULEB128 encoding. | |
| bool | operator== (const SampleRecord &Other) const |
| bool | operator!= (const SampleRecord &Other) const |
| Static Public Member Functions | |
|---|---|
| static const SortedCallTargetSet | sortCallTargets (const CallTargetMap &Targets) |
| Sort call targets in descending order of call frequency. | |
| static const CallTargetMap | adjustCallTargets (const CallTargetMap &Targets, float DistributionFactor) |
| Prorate call targets by a distribution factor. |
Representation of a single sample record.
A sample record is represented by a positive integer value, which indicates how frequently was the associated line location executed.
Additionally, if the associated location contains a function call, the record will hold a list of all the possible called targets and the types for virtual table dispatches. For direct calls, this will be the exact function being invoked. For indirect calls (function pointers, virtual table dispatch), this will be a list of one or more functions. For virtual table dispatches, this record will also hold the type of the object.
Definition at line 350 of file SampleProf.h.
◆ CallTarget
◆ CallTargetMap
◆ SortedCallTargetSet
| llvm::sampleprof::SampleRecord::SampleRecord ( ) | default |
|---|
◆ addCalledTarget()
◆ addSamples()
◆ adjustCallTargets()
| const CallTargetMap llvm::sampleprof::SampleRecord::adjustCallTargets ( const CallTargetMap & Targets, float DistributionFactor ) | inlinestatic |
|---|
Prorate call targets by a distribution factor.
Definition at line 441 of file SampleProf.h.
◆ dump()
◆ getCallTargets()
| const CallTargetMap & llvm::sampleprof::SampleRecord::getCallTargets ( ) const | inline |
|---|
◆ getCallTargetSum()
| uint64_t llvm::sampleprof::SampleRecord::getCallTargetSum ( ) const | inline |
|---|
◆ getSamples()
| uint64_t llvm::sampleprof::SampleRecord::getSamples ( ) const | inline |
|---|
◆ getSortedCallTargets()
| const SortedCallTargetSet llvm::sampleprof::SampleRecord::getSortedCallTargets ( ) const | inline |
|---|
◆ hasCalls()
| bool llvm::sampleprof::SampleRecord::hasCalls ( ) const | inline |
|---|
Return true if this sample record contains function calls.
Definition at line 415 of file SampleProf.h.
Referenced by print().
◆ merge()
◆ operator!=()
◆ operator==()
◆ print()
◆ removeCalledTarget()
Remove called function from the call target map.
Return the target sample count of the called function.
Definition at line 404 of file SampleProf.h.
References llvm::Count, F, and I.
◆ removeSamples()
Decrease the number of samples for this record by S.
Return the amout of samples actually decreased.
Definition at line 380 of file SampleProf.h.
◆ serialize()
Serialize the sample record to the output stream using ULEB128 encoding.
The NameTable is used to map function names to their IDs.
Definition at line 152 of file SampleProf.cpp.
References llvm::encodeULEB128(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::end(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::find(), getCallTargets(), getSamples(), getSortedCallTargets(), llvm::size(), llvm::success, and llvm::truncated_name_table.
Referenced by llvm::sampleprof::SampleProfileWriterBinary::writeBody().
◆ sortCallTargets()
| const SortedCallTargetSet llvm::sampleprof::SampleRecord::sortCallTargets ( const CallTargetMap & Targets) | inlinestatic |
|---|
The documentation for this class was generated from the following files:
- include/llvm/ProfileData/SampleProf.h
- lib/ProfileData/SampleProf.cpp