LLVM: llvm::sampleprof::SampleProfileReaderGCC Class Reference (original) (raw)
#include "[llvm/ProfileData/SampleProfReader.h](SampleProfReader%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| SampleProfileReaderGCC (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. | |
| 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. | |
| virtual void | setProfileUseMD5 () |
| Force the profile to use MD5 in Sample contexts, even if function names are present. | |
| 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. |
| Protected Member Functions | |
|---|---|
| std::error_code | readNameTable () |
| std::error_code | readOneFunctionProfile (const InlineCallStack &InlineStack, bool Update, uint32_t Offset) |
| std::error_code | readFunctionProfiles () |
| std::error_code | skipNextWord () |
| template<typename T> | |
| ErrorOr< T > | readNumber () |
| ErrorOr< StringRef > | readString () |
| std::error_code | readSectionTag (uint32_t Expected) |
| Read the section tag and check that it's the same as Expected. | |
| 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. |
| Protected Attributes | |
|---|---|
| GCOVBuffer | GcovBuffer |
| GCOV buffer containing the profile. | |
| std::vector< std::string > | Names |
| Function names in this profile. | |
| 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 896 of file SampleProfReader.h.
| llvm::sampleprof::SampleProfileReaderGCC::SampleProfileReaderGCC ( std::unique_ptr< MemoryBuffer > B, LLVMContext & C ) | inline |
|---|
◆ hasFormat()
◆ readFunctionProfiles()
| std::error_code SampleProfileReaderGCC::readFunctionProfiles ( ) | protected |
|---|
◆ readHeader()
| std::error_code SampleProfileReaderGCC::readHeader ( ) | overridevirtual |
|---|
◆ readImpl()
| std::error_code SampleProfileReaderGCC::readImpl ( ) | overridevirtual |
|---|
◆ readNameTable()
| std::error_code SampleProfileReaderGCC::readNameTable ( ) | protected |
|---|
◆ readNumber()
template<typename T>
| ErrorOr< T > SampleProfileReaderGCC::readNumber ( ) | protected |
|---|
◆ readOneFunctionProfile()
Definition at line 1824 of file SampleProfReader.cpp.
References llvm::sampleprof::FunctionSamples::addBodySamples(), llvm::sampleprof::FunctionSamples::addCalledTargetSamples(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::append_range(), llvm::Count, llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::sampleprof::FunctionSamples::functionSamplesAt(), GcovBuffer, llvm::sampleprof::FunctionSamples::getTotalSamples(), llvm::sampleprof::HIST_TYPE_INDIR_CALL_TOPN, I, llvm::malformed, Names, llvm::Offset, llvm::sampleprof::SampleProfileReader::Profiles, llvm::SmallVectorTemplateBase< T, bool >::push_back(), readOneFunctionProfile(), llvm::sampleprof::FunctionSamples::setFunction(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::success, and llvm::truncated.
Referenced by readFunctionProfiles(), and readOneFunctionProfile().
◆ readSectionTag()
| std::error_code SampleProfileReaderGCC::readSectionTag ( uint32_t Expected) | protected |
|---|
◆ readString()
◆ skipNextWord()
| std::error_code SampleProfileReaderGCC::skipNextWord ( ) | protected |
|---|
◆ GcovBuffer
| GCOVBuffer llvm::sampleprof::SampleProfileReaderGCC::GcovBuffer | protected |
|---|
◆ GCOVTagAFDOFileNames
| const uint32_t llvm::sampleprof::SampleProfileReaderGCC::GCOVTagAFDOFileNames = 0xaa000000 | staticprotected |
|---|
◆ GCOVTagAFDOFunction
| const uint32_t llvm::sampleprof::SampleProfileReaderGCC::GCOVTagAFDOFunction = 0xac000000 | staticprotected |
|---|
◆ Names
| std::vectorstd::string llvm::sampleprof::SampleProfileReaderGCC::Names | protected |
|---|
The documentation for this class was generated from the following files:
- include/llvm/ProfileData/SampleProfReader.h
- lib/ProfileData/SampleProfReader.cpp