LLVM
8.0.1
|
#include "llvm/ProfileData/SampleProfReader.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/ProfileSummary.h"
#include "llvm/ProfileData/ProfileCommon.h"
#include "llvm/ProfileData/SampleProf.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/LineIterator.h"
#include "llvm/Support/MD5.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <memory>
#include <system_error>
#include <vector>
Go to the source code of this file.
Functions | |
static bool | ParseHead (const StringRef &Input, StringRef &FName, uint64_t &NumSamples, uint64_t &NumHeadSamples) |
Parse Input as function head. More... | |
static bool | isOffsetLegal (unsigned L) |
Returns true if line offset L is legal (only has 16 bits). More... | |
static bool | ParseLine (const StringRef &Input, bool &IsCallsite, uint32_t &Depth, uint64_t &NumSamples, uint32_t &LineOffset, uint32_t &Discriminator, StringRef &CalleeName, DenseMap< StringRef, uint64_t > &TargetCountMap) |
Parse Input as line sample. More... | |
static ErrorOr< std::unique_ptr< MemoryBuffer > > | setupMemoryBuffer (const Twine &Filename) |
Prepare a memory buffer for the contents of Filename . More... | |
Returns true if line offset L
is legal (only has 16 bits).
Definition at line 84 of file SampleProfReader.cpp.
Referenced by ParseLine(), and llvm::sampleprof::SampleProfileReaderBinary::readProfile().
|
static |
Parse Input
as function head.
Parse one line of Input
, and update function name in FName
, function's total sample count in NumSamples
, function's entry count in NumHeadSamples
.
Definition at line 69 of file SampleProfReader.cpp.
References llvm::StringRef::getAsInteger(), llvm::StringRef::rfind(), and llvm::StringRef::substr().
Referenced by llvm::sampleprof::SampleProfileReaderText::hasFormat(), and llvm::sampleprof::SampleProfileReaderText::read().
|
static |
Parse Input
as line sample.
Input | input line. |
IsCallsite | true if the line represents an inlined callsite. |
Depth | the depth of the inline stack. |
NumSamples | total samples of the line/inlined callsite. |
LineOffset | line offset to the start of the function. |
Discriminator | discriminator of the line. |
TargetCountMap | map from indirect call target to count. |
returns true if parsing is successful.
Definition at line 97 of file SampleProfReader.cpp.
References llvm::count(), llvm::Depth, llvm::StringRef::find(), llvm::StringRef::find_first_not_of(), llvm::StringRef::find_first_of(), llvm::StringRef::find_last_of(), llvm::StringRef::getAsInteger(), isOffsetLegal(), llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by llvm::sampleprof::SampleProfileReaderText::read().
|
static |
Prepare a memory buffer for the contents of Filename
.
Definition at line 953 of file SampleProfReader.cpp.
References llvm::sampleprof::SampleProfileReader::Buffer, llvm::MemoryBuffer::getFileOrSTDIN(), llvm::max(), and llvm::too_large.
Referenced by llvm::sampleprof::SampleProfileReader::create(), and llvm::sampleprof::SampleProfileReaderItaniumRemapper::create().