LLVM
8.0.1
|
Reader for the raw instrprof binary format from runtime. More...
#include "llvm/ProfileData/InstrProfReader.h"
Public Member Functions | |
RawInstrProfReader (std::unique_ptr< MemoryBuffer > DataBuffer) | |
RawInstrProfReader (const RawInstrProfReader &)=delete | |
RawInstrProfReader & | operator= (const RawInstrProfReader &)=delete |
Error | readHeader () override |
Read the header. Required before reading first record. More... | |
Error | readNextRecord (NamedInstrProfRecord &Record) override |
Read a single record. More... | |
bool | isIRLevelProfile () const override |
InstrProfSymtab & | getSymtab () override |
Return the PGO symtab. More... | |
Public Member Functions inherited from llvm::InstrProfReader | |
InstrProfReader ()=default | |
virtual | ~InstrProfReader ()=default |
InstrProfIterator | begin () |
Iterator over profile data. More... | |
InstrProfIterator | end () |
bool | isEOF () |
Return true if the reader has finished reading the profile data. More... | |
bool | hasError () |
Return true if the reader encountered an error reading profiling data. More... | |
Error | getError () |
Get the current error. More... | |
Static Public Member Functions | |
static bool | hasFormat (const MemoryBuffer &DataBuffer) |
Static Public Member Functions inherited from llvm::InstrProfReader | |
static Expected< std::unique_ptr< InstrProfReader > > | create (const Twine &Path) |
Factory method to create an appropriately typed reader for the given instrprof file. More... | |
static Expected< std::unique_ptr< InstrProfReader > > | create (std::unique_ptr< MemoryBuffer > Buffer) |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::InstrProfReader | |
Error | error (instrprof_error Err) |
Set the current error and return same. More... | |
Error | error (Error &&E) |
Error | success () |
Clear the current error and return a successful one. More... | |
Protected Attributes inherited from llvm::InstrProfReader | |
std::unique_ptr< InstrProfSymtab > | Symtab |
Reader for the raw instrprof binary format from runtime.
This format is a raw memory dump of the instrumentation-baed profiling data from the runtime. It has no index.
Templated on the unsigned type whose size matches pointers on the platform that wrote the profile.
Definition at line 180 of file InstrProfReader.h.
|
inline |
Definition at line 203 of file InstrProfReader.h.
|
delete |
|
inlineoverridevirtual |
Return the PGO symtab.
There are three different readers: Raw, Text, and Indexed profile readers. The first two types of readers are used only by llvm-profdata tool, while the indexed profile reader is also used by llvm-cov tool and the compiler ( backend or frontend). Since creating PGO symtab can create significant runtime and memory overhead (as it touches data for the whole program), InstrProfSymtab for the indexed profile reader should be created on demand and it is recommended to be only used for dumping purpose with llvm-proftool, not with the compiler.
Implements llvm::InstrProfReader.
Definition at line 216 of file InstrProfReader.h.
References assert(), llvm::support::big, llvm::InstrProfSymtab::getFuncName(), llvm::getHostEndianness(), getName(), llvm::sys::getSwappedBytes(), llvm::support::little, and std::swap().
|
static |
Definition at line 293 of file InstrProfReader.cpp.
References llvm::MemoryBuffer::getBufferSize(), llvm::MemoryBuffer::getBufferStart(), llvm::sys::getSwappedBytes(), and Magic.
Referenced by llvm::InstrProfReader::create().
|
inlineoverridevirtual |
Implements llvm::InstrProfReader.
Definition at line 212 of file InstrProfReader.h.
|
delete |
|
overridevirtual |
Read the header. Required before reading first record.
Implements llvm::InstrProfReader.
Definition at line 303 of file InstrProfReader.cpp.
References llvm::bad_header, llvm::bad_magic, llvm::InstrProfReader::error(), and llvm::InstrProfReader::readHeader().
|
overridevirtual |
Read a single record.
Implements llvm::InstrProfReader.
Definition at line 463 of file InstrProfReader.cpp.
References E, llvm::InstrProfReader::error(), and llvm::InstrProfReader::success().