LLVM
8.0.1
|
Profile instances are thread-compatible. More...
#include "llvm/XRay/Profile.h"
Classes | |
struct | Block |
struct | Data |
Public Types | |
using | ThreadID = uint64_t |
using | PathID = unsigned |
using | FuncID = int32_t |
using | const_iterator = BlockList::const_iterator |
Public Member Functions | |
Expected< std::vector< FuncID > > | expandPath (PathID P) const |
Provides a sequence of function IDs from a previously interned PathID. More... | |
PathID | internPath (ArrayRef< FuncID > P) |
The stack represented in |P| must be in stack order (leaf to root). More... | |
Error | addBlock (Block &&B) |
Appends a fully-formed Block instance into the Profile. More... | |
Profile ()=default | |
~Profile ()=default | |
Profile (Profile &&O) noexcept | |
Profile & | operator= (Profile &&O) noexcept |
Profile (const Profile &) | |
Profile & | operator= (const Profile &) |
const_iterator | begin () const |
const_iterator | end () const |
bool | empty () const |
Friends | |
void | swap (Profile &L, Profile &R) |
using llvm::xray::Profile::const_iterator = BlockList::const_iterator |
using llvm::xray::Profile::FuncID = int32_t |
using llvm::xray::Profile::PathID = unsigned |
using llvm::xray::Profile::ThreadID = uint64_t |
|
default |
Referenced by operator=().
|
default |
|
inlinenoexcept |
Definition at line 26 of file Profile.cpp.
References B, llvm::cantFail(), internPath(), llvm::xray::Profile::Block::PathData, and llvm::xray::Profile::Block::Thread.
Appends a fully-formed Block instance into the Profile.
Returns an error condition in the following cases:
Definition at line 122 of file Profile.cpp.
References B, llvm::make_error_code(), and llvm::Error::success().
Referenced by llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), and llvm::xray::profileFromTrace().
|
inline |
|
inline |
Expected< std::vector< Profile::FuncID > > llvm::xray::Profile::expandPath | ( | PathID | P | ) | const |
Provides a sequence of function IDs from a previously interned PathID.
Returns an error if |P| had not been interned before into the Profile.
Definition at line 132 of file Profile.cpp.
References llvm::make_error_code().
Profile::PathID llvm::xray::Profile::internPath | ( | ArrayRef< FuncID > | P | ) |
The stack represented in |P| must be in stack order (leaf to root).
This will always return the same PathID for |P| that has the same sequence.
Definition at line 144 of file Profile.cpp.
References llvm::ArrayRef< T >::empty(), llvm::find_if(), N, and llvm::reverse().
Referenced by llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), Profile(), and llvm::xray::profileFromTrace().
Definition at line 94 of file Profile.h.
References llvm::RISCVFenceField::O, and Profile().
Definition at line 38 of file Profile.cpp.
References llvm::RISCVFenceField::O, and P.