LLVM 22.0.0git
|
Sample-based profile writer (text format). More...
#include "llvm/ProfileData/SampleProfWriter.h"
Public Member Functions | |
std::error_code | writeSample (const FunctionSamples &S) override |
Write samples to a text file. | |
Public Member Functions inherited from llvm::sampleprof::SampleProfileWriter | |
virtual | ~SampleProfileWriter ()=default |
virtual std::error_code | write (const SampleProfileMap &ProfileMap) |
Write all the sample profiles in the given map of samples. | |
template<typename FunctionPruningStrategy = DefaultFunctionPruningStrategy> | |
std::error_code | writeWithSizeLimit (SampleProfileMap &ProfileMap, size_t OutputSizeLimit) |
Write sample profiles up to given size limit, using the pruning strategy to drop some functions if necessary. | |
raw_ostream & | getOutputStream () |
virtual void | setProfileSymbolList (ProfileSymbolList *PSL) |
virtual void | setToCompressAllSections () |
virtual void | setUseMD5 () |
virtual void | setPartialProfile () |
Protected Member Functions | |
SampleProfileWriterText (std::unique_ptr< raw_ostream > &OS) | |
std::error_code | writeHeader (const SampleProfileMap &ProfileMap) override |
Write a file header for the profile file. | |
void | setUseCtxSplitLayout () override |
Protected Member Functions inherited from llvm::sampleprof::SampleProfileWriter | |
SampleProfileWriter (std::unique_ptr< raw_ostream > &OS) | |
virtual std::error_code | writeFuncProfiles (const SampleProfileMap &ProfileMap) |
std::error_code | writeWithSizeLimitInternal (SampleProfileMap &ProfileMap, size_t OutputSizeLimit, FunctionPruningStrategy *Strategy) |
void | computeSummary (const SampleProfileMap &ProfileMap) |
Compute summary for this profile. |
Friends | |
LLVM_ABI friend ErrorOr< std::unique_ptr< SampleProfileWriter > > | SampleProfileWriter::create (std::unique_ptr< raw_ostream > &OS, SampleProfileFormat Format) |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::sampleprof::SampleProfileWriter | |
static ErrorOr< std::unique_ptr< SampleProfileWriter > > | create (StringRef Filename, SampleProfileFormat Format) |
Profile writer factory. | |
static ErrorOr< std::unique_ptr< SampleProfileWriter > > | create (std::unique_ptr< raw_ostream > &OS, SampleProfileFormat Format) |
Create a new stream writer based on the value of Format . | |
Protected Attributes inherited from llvm::sampleprof::SampleProfileWriter | |
size_t | LineCount |
For writeWithSizeLimit in text mode, each newline takes 1 additional byte on Windows when actually written to the file, but not written to a memory buffer. | |
std::unique_ptr< raw_ostream > | OutputStream |
Output stream where to emit the profile to. | |
std::unique_ptr< ProfileSummary > | Summary |
Profile summary. | |
SampleProfileFormat | Format = SPF_None |
Profile format. |
Sample-based profile writer (text format).
Definition at line 167 of file SampleProfWriter.h.
|
inlineprotected |
Definition at line 172 of file SampleProfWriter.h.
References llvm::sampleprof::SampleProfileWriter::SampleProfileWriter().
|
inlineoverrideprotectedvirtual |
Reimplemented from llvm::sampleprof::SampleProfileWriter.
Definition at line 180 of file SampleProfWriter.h.
|
inlineoverrideprotectedvirtual |
Write a file header for the profile file.
Implements llvm::sampleprof::SampleProfileWriter.
Definition at line 175 of file SampleProfWriter.h.
References llvm::sampleprof::SampleProfileWriter::LineCount, and llvm::success.
|
overridevirtual |
Write samples to a text file.
Note: it may be tempting to implement this in terms of FunctionSamples::print(). Please don't. The dump functionality is intended for debugging and has no specified form.
The format used here is more structured and deliberate because it needs to be parsed by the SampleProfileReaderText class.
Implements llvm::sampleprof::SampleProfileWriter.
Definition at line 580 of file SampleProfWriter.cpp.
References llvm::Count, llvm::sampleprof::FunctionSamples::findCallsiteTypeSamplesAt(), llvm::sampleprof::SampleSorter< LocationT, SampleT >::get(), llvm::sampleprof::SampleContext::getAllAttributes(), llvm::sampleprof::FunctionSamples::getBodySamples(), llvm::sampleprof::FunctionSamples::getCallsiteSamples(), llvm::sampleprof::FunctionSamples::getContext(), llvm::sampleprof::FunctionSamples::getFunction(), llvm::sampleprof::FunctionSamples::getFunctionHash(), llvm::sampleprof::FunctionSamples::getHeadSamples(), llvm::sampleprof::SampleRecord::getSamples(), llvm::sampleprof::SampleRecord::getSortedCallTargets(), llvm::sampleprof::FunctionSamples::getTotalSamples(), I, llvm::sampleprof::kVTableProfPrefix, llvm::sampleprof::SampleProfileWriter::LineCount, llvm::make_second_range(), llvm::sampleprof::SampleProfileWriter::OutputStream, llvm::sampleprof::FunctionSamples::ProfileIsCS, llvm::sampleprof::FunctionSamples::ProfileIsProbeBased, llvm::success, llvm::sampleprof::SampleContext::toString(), and writeSample().
Referenced by writeSample().
|
friend |