LLVM: llvm::sampleprof::SampleProfileReaderText Class Reference (original) (raw)

#include "[llvm/ProfileData/SampleProfReader.h](SampleProfReader%5F8h%5Fsource.html)"

Public Member Functions
SampleProfileReaderText (std::unique_ptr< MemoryBuffer > B, LLVMContext &C)
std::error_code readHeader () override
Read and validate the file header.
std::error_code readImpl () override
Read sample profiles from the associated file.
void setProfileUseMD5 () override
Text format sample profile does not support MD5 for now.
Public Member Functions inherited from llvm::sampleprof::SampleProfileReader
SampleProfileReader (std::unique_ptr< MemoryBuffer > B, LLVMContext &C, SampleProfileFormat Format=SPF_None)
virtual ~SampleProfileReader ()=default
void setDiscriminatorMaskedBitFrom (FSDiscriminatorPass P)
Set the bits for FS discriminators.
uint32_t getDiscriminatorMask () const
Get the bitmask the discriminators: For FS profiles, return the bit mask for this pass.
std::error_code read ()
The interface to read sample profiles from the associated file.
std::error_code read (const DenseSet< StringRef > &FuncsToUse)
Read sample profiles for the given functions.
LLVM_ABI void dumpFunctionProfile (const FunctionSamples &FS, raw_ostream &OS=dbgs())
Print the profile for FunctionSamples on stream OS.
virtual bool collectFuncsFromModule ()
Collect functions with definitions in Module M.
LLVM_ABI void dump (raw_ostream &OS=dbgs())
Print all the profiles on stream OS.
LLVM_ABI void dumpJson (raw_ostream &OS=dbgs())
Print all the profiles on stream OS in the JSON format.
FunctionSamples * getSamplesFor (const Function &F)
Return the samples collected for function F.
FunctionSamples * getSamplesFor (StringRef Fname)
Return the samples collected for function F.
SampleProfileMap & getProfiles ()
Return all the profiles.
void reportError (int64_t LineNumber, const Twine &Msg) const
Report a parse error message.
ProfileSummary & getSummary () const
Return the profile summary.
MemoryBuffer * getBuffer () const
SampleProfileFormat getFormat () const
Return the profile format.
bool profileIsProbeBased () const
Whether input profile is based on pseudo probes.
bool profileIsCS () const
Whether input profile is fully context-sensitive.
bool profileIsPreInlined () const
Whether input profile contains ShouldBeInlined contexts.
bool profileIsFS () const
Whether input profile is flow-sensitive.
virtual std::unique_ptr< ProfileSymbolList > getProfileSymbolList ()
virtual std::vector< FunctionId > * getNameTable ()
It includes all the names that have samples either in outline instance or inline instance.
virtual bool dumpSectionInfo (raw_ostream &OS=dbgs())
bool useMD5 () const
Return whether names in the profile are all MD5 numbers.
void setSkipFlatProf (bool Skip)
Don't read profile without context if the flag is set.
virtual bool hasUniqSuffix ()
Return whether any name in the profile contains ".__uniq." suffix.
SampleProfileReaderItaniumRemapper * getRemapper ()
void setModule (const Module *Mod)
void setFuncNameToProfNameMap (const HashKeyMap< std::unordered_map, FunctionId, FunctionId > &FPMap)
Static Public Member Functions
static bool hasFormat (const MemoryBuffer &Buffer)
Return true if Buffer is in the format supported by this class.
Static Public Member Functions inherited from llvm::sampleprof::SampleProfileReader
static LLVM_ABI ErrorOr< std::unique_ptr< SampleProfileReader > > create (StringRef Filename, LLVMContext &C, vfs::FileSystem &FS, FSDiscriminatorPass P=FSDiscriminatorPass::Base, StringRef RemapFilename="")
Create a sample profile reader appropriate to the file format.
static LLVM_ABI ErrorOr< std::unique_ptr< SampleProfileReader > > create (std::unique_ptr< MemoryBuffer > &B, LLVMContext &C, vfs::FileSystem &FS, FSDiscriminatorPass P=FSDiscriminatorPass::Base, StringRef RemapFilename="")
Create a sample profile reader from the supplied memory buffer.
Additional Inherited Members
Protected Member Functions inherited from llvm::sampleprof::SampleProfileReader
LLVM_ABI void computeSummary ()
Compute summary for this profile.
virtual std::error_code read (const DenseSet< StringRef > &FuncsToUse, SampleProfileMap &Profiles)
Read sample profiles for the given functions and write them to the given profile map.
Static Protected Member Functions inherited from llvm::sampleprof::SampleProfileReader
static std::unique_ptr< ProfileSummary > takeSummary (SampleProfileReader &Reader)
Take ownership of the summary of this reader.
Protected Attributes inherited from llvm::sampleprof::SampleProfileReader
SampleProfileMap Profiles
Map every function to its associated profile.
LLVMContext & Ctx
LLVM context used to emit diagnostics.
std::unique_ptr< MemoryBuffer > Buffer
Memory buffer holding the profile file.
std::unique_ptr< ProfileSummary > Summary
Profile summary information.
std::unique_ptr< SampleProfileReaderItaniumRemapper > Remapper
const HashKeyMap< std::unordered_map, FunctionId, FunctionId > * FuncNameToProfNameMap = nullptr
std::unordered_map< uint64_t, std::pair< const uint8_t *, const uint8_t * > > FuncMetadataIndex
std::pair< const uint8_t *, const uint8_t * > ProfileSecRange
bool ProfileHasAttribute = false
Whether the profile has attribute metadata.
bool ProfileIsProbeBased = false
Whether samples are collected based on pseudo probes.
bool ProfileIsCS = false
Whether function profiles are context-sensitive flat profiles.
bool ProfileIsPreInlined = false
Whether function profile contains ShouldBeInlined contexts.
uint32_t CSProfileCount = 0
Number of context-sensitive profiles.
bool ProfileIsFS = false
Whether the function profiles use FS discriminators.
bool ReadVTableProf = false
If true, the profile has vtable profiles and reader should decode them to parse profiles correctly.
SampleProfileFormat Format = SPF_None
The format of sample.
const Module * M = nullptr
The current module being compiled if SampleProfileReader is used by compiler.
uint32_t MaskedBitFrom = 31
Zero out the discriminator bits higher than bit MaskedBitFrom (0 based).
bool ProfileIsMD5 = false
Whether the profile uses MD5 for Sample Contexts and function names.
bool SkipFlatProf = false
If SkipFlatProf is true, skip functions marked with !Flat in text mode or sections with SecFlagFlat flag in ExtBinary mode.

Definition at line 616 of file SampleProfReader.h.

llvm::sampleprof::SampleProfileReaderText::SampleProfileReaderText ( std::unique_ptr< MemoryBuffer > B, LLVMContext & C ) inline

hasFormat()

readHeader()

std::error_code llvm::sampleprof::SampleProfileReaderText::readHeader ( ) inlineoverridevirtual

readImpl()

std::error_code SampleProfileReaderText::readImpl ( ) overridevirtual

Read sample profiles from the associated file.

Load samples from a text file.

See the documentation at the top of the file for an explanation of the expected format.

Returns

true if the file was loaded successfully, false otherwise.

Implements llvm::sampleprof::SampleProfileReader.

Definition at line 359 of file SampleProfReader.cpp.

References llvm::sampleprof::FunctionSamples::addBodySamples(), llvm::sampleprof::FunctionSamples::addCalledTargetSamples(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::sampleprof::FunctionSamples::addTotalSamples(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), BodyProfile, llvm::sampleprof::SampleProfileReader::Buffer, CallSiteProfile, llvm::SmallVectorImpl< T >::clear(), llvm::sampleprof::SampleProfileReader::computeSummary(), llvm::sampleprof::ContextShouldBeInlined, llvm::sampleprof::SampleProfileReader::CSProfileCount, llvm::sampleprof::SampleProfileReader::Ctx, llvm::Depth, llvm::DS_Warning, llvm::StringRef::find_first_not_of(), llvm::sampleprof::FunctionSamples::getContext(), llvm::sampleprof::SampleProfileReader::getDiscriminatorMask(), llvm::sampleprof::SampleContext::hasContext(), llvm::line_iterator::is_at_eof(), llvm::line_iterator::line_number(), llvm::malformed, llvm::mergeSampleProfErrors(), Metadata, llvm::StringRef::npos, ParseHead(), ParseLine(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::sampleprof::FunctionSamples::ProfileIsCS, llvm::sampleprof::SampleProfileReader::ProfileIsCS, llvm::sampleprof::FunctionSamples::ProfileIsFS, llvm::sampleprof::SampleProfileReader::ProfileIsFS, ProfileIsFSDisciminator, llvm::sampleprof::FunctionSamples::ProfileIsPreInlined, llvm::sampleprof::SampleProfileReader::ProfileIsPreInlined, llvm::sampleprof::FunctionSamples::ProfileIsProbeBased, llvm::sampleprof::SampleProfileReader::ProfileIsProbeBased, llvm::sampleprof::SampleProfileReader::Profiles, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::sampleprof::SampleProfileReader::reportError(), llvm::sampleprof::SampleContext::setAllAttributes(), llvm::sampleprof::FunctionSamples::setFunction(), llvm::sampleprof::FunctionSamples::setFunctionHash(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::sampleprof::SampleProfileReader::SkipFlatProf, llvm::success, and VirtualCallTypeProfile.

setProfileUseMD5()

void llvm::sampleprof::SampleProfileReaderText::setProfileUseMD5 ( ) inlineoverridevirtual

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