LLVM  15.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::sampleprof::SampleProfileWriter Class Referenceabstract

Sample-based profile writer. Base class. More...

#include "llvm/ProfileData/SampleProfWriter.h"

Inheritance diagram for llvm::sampleprof::SampleProfileWriter:
Inheritance graph
[legend]
Collaboration diagram for llvm::sampleprof::SampleProfileWriter:
Collaboration graph
[legend]

Public Member Functions

virtual ~SampleProfileWriter ()=default
 
virtual std::error_code writeSample (const FunctionSamples &S)=0
 Write sample profiles in S. More...
 
virtual std::error_code write (const SampleProfileMap &ProfileMap)
 Write all the sample profiles in the given map of samples. More...
 
raw_ostreamgetOutputStream ()
 
virtual void setProfileSymbolList (ProfileSymbolList *PSL)
 
virtual void setToCompressAllSections ()
 
virtual void setUseMD5 ()
 
virtual void setPartialProfile ()
 
virtual void resetSecLayout (SectionLayout SL)
 

Static Public Member Functions

static ErrorOr< std::unique_ptr< SampleProfileWriter > > create (StringRef Filename, SampleProfileFormat Format)
 Profile writer factory. More...
 
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. More...
 

Protected Member Functions

 SampleProfileWriter (std::unique_ptr< raw_ostream > &OS)
 
virtual std::error_code writeHeader (const SampleProfileMap &ProfileMap)=0
 Write a file header for the profile file. More...
 
virtual std::error_code writeFuncProfiles (const SampleProfileMap &ProfileMap)
 
void computeSummary (const SampleProfileMap &ProfileMap)
 Compute summary for this profile. More...
 

Protected Attributes

std::unique_ptr< raw_ostreamOutputStream
 Output stream where to emit the profile to. More...
 
std::unique_ptr< ProfileSummarySummary
 Profile summary. More...
 
SampleProfileFormat Format = SPF_None
 Profile format. More...
 

Detailed Description

Sample-based profile writer. Base class.

Definition at line 39 of file SampleProfWriter.h.

Constructor & Destructor Documentation

◆ ~SampleProfileWriter()

virtual llvm::sampleprof::SampleProfileWriter::~SampleProfileWriter ( )
virtualdefault

◆ SampleProfileWriter()

llvm::sampleprof::SampleProfileWriter::SampleProfileWriter ( std::unique_ptr< raw_ostream > &  OS)
inlineprotected

Definition at line 73 of file SampleProfWriter.h.

Member Function Documentation

◆ computeSummary()

void SampleProfileWriter::computeSummary ( const SampleProfileMap ProfileMap)
protected

◆ create() [1/2]

ErrorOr< std::unique_ptr< SampleProfileWriter > > SampleProfileWriter::create ( std::unique_ptr< raw_ostream > &  OS,
SampleProfileFormat  Format 
)
static

Create a new stream writer based on the value of Format.

Create a sample profile stream writer based on the specified format.

For testing.

Parameters
OSThe output stream to store the profile data to.
FormatEncoding format for the profile file.
Returns
an error code indicating the status of the created writer.

Definition at line 865 of file SampleProfWriter.cpp.

References Format, move, llvm::sampleprof::FunctionSamples::ProfileIsCS, llvm::sampleprof::FunctionSamples::ProfileIsProbeBased, llvm::sampleprof::SPF_Binary, llvm::sampleprof::SPF_Compact_Binary, llvm::sampleprof::SPF_Ext_Binary, llvm::sampleprof::SPF_GCC, llvm::sampleprof::SPF_Text, llvm::unrecognized_format, and llvm::unsupported_writing_format.

◆ create() [2/2]

ErrorOr< std::unique_ptr< SampleProfileWriter > > SampleProfileWriter::create ( StringRef  Filename,
SampleProfileFormat  Format 
)
static

Profile writer factory.

Create a sample profile file writer based on the specified format.

Create a new file writer based on the value of Format.

Parameters
FilenameThe file to create.
FormatEncoding format for the profile file.
Returns
an error code indicating the status of the created writer.

Definition at line 843 of file SampleProfWriter.cpp.

References Format, llvm::sys::fs::OF_None, llvm::sys::fs::OF_TextWithCRLF, llvm::sampleprof::SPF_Binary, llvm::sampleprof::SPF_Compact_Binary, and llvm::sampleprof::SPF_Ext_Binary.

◆ getOutputStream()

raw_ostream& llvm::sampleprof::SampleProfileWriter::getOutputStream ( )
inline

Definition at line 53 of file SampleProfWriter.h.

References OutputStream.

◆ resetSecLayout()

virtual void llvm::sampleprof::SampleProfileWriter::resetSecLayout ( SectionLayout  SL)
inlinevirtual

Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 70 of file SampleProfWriter.h.

◆ setPartialProfile()

virtual void llvm::sampleprof::SampleProfileWriter::setPartialProfile ( )
inlinevirtual

Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 69 of file SampleProfWriter.h.

◆ setProfileSymbolList()

virtual void llvm::sampleprof::SampleProfileWriter::setProfileSymbolList ( ProfileSymbolList PSL)
inlinevirtual

Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 66 of file SampleProfWriter.h.

◆ setToCompressAllSections()

virtual void llvm::sampleprof::SampleProfileWriter::setToCompressAllSections ( )
inlinevirtual

Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 67 of file SampleProfWriter.h.

◆ setUseMD5()

virtual void llvm::sampleprof::SampleProfileWriter::setUseMD5 ( )
inlinevirtual

Reimplemented in llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 68 of file SampleProfWriter.h.

◆ write()

std::error_code SampleProfileWriter::write ( const SampleProfileMap ProfileMap)
virtual

Write all the sample profiles in the given map of samples.

Returns
status code of the file update operation.

Reimplemented in llvm::sampleprof::SampleProfileWriterCompactBinary, and llvm::sampleprof::SampleProfileWriterExtBinaryBase.

Definition at line 54 of file SampleProfWriter.cpp.

References llvm::success, writeFuncProfiles(), and writeHeader().

Referenced by llvm::sampleprof::SampleProfileWriterCompactBinary::write().

◆ writeFuncProfiles()

std::error_code SampleProfileWriter::writeFuncProfiles ( const SampleProfileMap ProfileMap)
protectedvirtual

◆ writeHeader()

virtual std::error_code llvm::sampleprof::SampleProfileWriter::writeHeader ( const SampleProfileMap ProfileMap)
protectedpure virtual

◆ writeSample()

virtual std::error_code llvm::sampleprof::SampleProfileWriter::writeSample ( const FunctionSamples S)
pure virtual

Member Data Documentation

◆ Format

SampleProfileFormat llvm::sampleprof::SampleProfileWriter::Format = SPF_None
protected

◆ OutputStream

std::unique_ptr<raw_ostream> llvm::sampleprof::SampleProfileWriter::OutputStream
protected

◆ Summary

std::unique_ptr<ProfileSummary> llvm::sampleprof::SampleProfileWriter::Summary
protected

Profile summary.

Definition at line 86 of file SampleProfWriter.h.

Referenced by computeSummary(), and llvm::sampleprof::SampleProfileWriterBinary::writeSummary().


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