|
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().
1.8.13