|
LLVM 22.0.0git
|
Sample-based profile writer (binary format). More...
#include "llvm/ProfileData/SampleProfWriter.h"
Public Member Functions | |
| SampleProfileWriterBinary (std::unique_ptr< raw_ostream > &OS) | |
| std::error_code | writeSample (const FunctionSamples &S) override |
| Write samples of a top-level function to a binary 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 () |
| virtual void | setUseCtxSplitLayout () |
Protected Member Functions | |
| virtual MapVector< FunctionId, uint32_t > & | getNameTable () |
| virtual std::error_code | writeMagicIdent (SampleProfileFormat Format) |
| virtual std::error_code | writeNameTable () |
| std::error_code | writeHeader (const SampleProfileMap &ProfileMap) override |
| Write a file header for the profile file. | |
| std::error_code | writeSummary () |
| virtual std::error_code | writeContextIdx (const SampleContext &Context) |
| std::error_code | writeNameIdx (FunctionId FName) |
| std::error_code | writeBody (const FunctionSamples &S) |
| void | stablizeNameTable (MapVector< FunctionId, uint32_t > &NameTable, std::set< FunctionId > &V) |
| void | addName (FunctionId FName) |
| virtual void | addContext (const SampleContext &Context) |
| void | addNames (const FunctionSamples &S) |
| std::error_code | writeCallsiteVTableProf (const CallsiteTypeMap &CallsiteTypeMap, raw_ostream &OS) |
Write CallsiteTypeMap to the output stream OS. | |
| 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. | |
Protected Attributes | |
| MapVector< FunctionId, uint32_t > | NameTable |
| bool | WriteVTableProf = false |
| 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. | |
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. | |
Sample-based profile writer (binary format).
Definition at line 202 of file SampleProfWriter.h.
|
inline |
Definition at line 204 of file SampleProfWriter.h.
References llvm::sampleprof::SampleProfileWriter::SampleProfileWriter().
|
protectedvirtual |
Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.
Definition at line 688 of file SampleProfWriter.cpp.
References addName().
Referenced by writeHeader().
|
protected |
Definition at line 683 of file SampleProfWriter.cpp.
References getNameTable().
Referenced by addContext(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::addContext(), and addNames().
|
protected |
Definition at line 692 of file SampleProfWriter.cpp.
References addName(), addNames(), llvm::sampleprof::FunctionSamples::getBodySamples(), llvm::sampleprof::FunctionSamples::getCallsiteSamples(), llvm::sampleprof::FunctionSamples::getCallsiteTypeCounts(), llvm::sampleprof::SampleRecord::getCallTargets(), llvm::sampleprof::FunctionSamples::getFunction(), I, llvm::make_first_range(), llvm::make_second_range(), and WriteVTableProf.
Referenced by addNames(), writeHeader(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTableSection().
|
inlineprotectedvirtual |
Definition at line 210 of file SampleProfWriter.h.
References NameTable.
Referenced by addName(), writeBody(), writeCallsiteVTableProf(), and writeNameIdx().
|
inlineprotected |
Definition at line 731 of file SampleProfWriter.cpp.
References I, N, and NameTable.
Referenced by writeNameTable(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTable().
|
protected |
Definition at line 888 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), llvm::sampleprof::FunctionSamples::getBodySamples(), llvm::sampleprof::FunctionSamples::getCallsiteSamples(), llvm::sampleprof::FunctionSamples::getCallsiteTypeCounts(), llvm::sampleprof::FunctionSamples::getContext(), getNameTable(), llvm::sampleprof::FunctionSamples::getTotalSamples(), I, llvm::sampleprof::SampleProfileWriter::OutputStream, llvm::sampleprof::SampleRecord::serialize(), llvm::success, writeBody(), writeCallsiteVTableProf(), writeContextIdx(), and WriteVTableProf.
Referenced by writeBody(), writeSample(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeSample().
|
protected |
Write CallsiteTypeMap to the output stream OS.
Definition at line 856 of file SampleProfWriter.cpp.
References assert(), llvm::encodeULEB128(), getNameTable(), llvm::sampleprof::serializeTypeMap(), llvm::success, and WriteVTableProf.
Referenced by writeBody().
|
protectedvirtual |
Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.
Definition at line 669 of file SampleProfWriter.cpp.
References assert(), and writeNameIdx().
Referenced by writeBody().
|
overrideprotectedvirtual |
Write a file header for the profile file.
Implements llvm::sampleprof::SampleProfileWriter.
Definition at line 765 of file SampleProfWriter.cpp.
References addContext(), addNames(), llvm::sampleprof::SampleProfileWriter::computeSummary(), llvm::sampleprof::SampleProfileWriter::Format, I, NameTable, llvm::success, writeMagicIdent(), writeNameTable(), and writeSummary().
|
protectedvirtual |
Definition at line 756 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), llvm::sampleprof::SampleProfileWriter::Format, llvm::sampleprof::SampleProfileWriter::OutputStream, llvm::sampleprof::SPMagic(), llvm::sampleprof::SPVersion(), and llvm::success.
Referenced by writeHeader().
|
protected |
Definition at line 674 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), getNameTable(), llvm::sampleprof::SampleProfileWriter::OutputStream, llvm::success, and llvm::truncated_name_table.
Referenced by writeContextIdx(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeContextIdx(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeCSNameTableSection().
|
protectedvirtual |
Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.
Definition at line 741 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), N, NameTable, llvm::sampleprof::SampleProfileWriter::OutputStream, stablizeNameTable(), and llvm::success.
Referenced by writeHeader(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTable().
|
overridevirtual |
Write samples of a top-level function to a binary file.
Implements llvm::sampleprof::SampleProfileWriter.
Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.
Definition at line 926 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), llvm::sampleprof::FunctionSamples::getHeadSamples(), llvm::sampleprof::SampleProfileWriter::OutputStream, and writeBody().
|
protected |
Definition at line 872 of file SampleProfWriter.cpp.
References llvm::encodeULEB128(), llvm::sampleprof::SampleProfileWriter::OutputStream, llvm::ArrayRef< T >::size(), llvm::success, and llvm::sampleprof::SampleProfileWriter::Summary.
Referenced by writeHeader(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeOneSection().
|
friend |
|
protected |
Definition at line 221 of file SampleProfWriter.h.
Referenced by getNameTable(), stablizeNameTable(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::write(), writeHeader(), writeNameTable(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTable(), and llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTableSection().
|
protected |
Definition at line 232 of file SampleProfWriter.h.
Referenced by addNames(), llvm::sampleprof::SampleProfileWriterExtBinary::SampleProfileWriterExtBinary(), writeBody(), and writeCallsiteVTableProf().