diff options
author | Dean Michael Berris <dberris@google.com> | 2018-08-30 01:43:22 +0000 |
---|---|---|
committer | Dean Michael Berris <dberris@google.com> | 2018-08-30 01:43:22 +0000 |
commit | f6c87eb9651dfdf0f9c9b35a08258be152468e16 (patch) | |
tree | bb0e2a238abdc457b4d691ef98e04ce015b32819 /lldb/packages/Python/lldbsuite/test/functionalities | |
parent | 6518929569f102bafbfd2b85df4a49642a2704df (diff) | |
download | bcm5719-llvm-f6c87eb9651dfdf0f9c9b35a08258be152468e16.tar.gz bcm5719-llvm-f6c87eb9651dfdf0f9c9b35a08258be152468e16.zip |
[XRay][llvm] Load XRay Profiles
Summary:
This change implements the profile loading functionality in LLVM to
support XRay's profiling mode in compiler-rt.
We introduce a type named `llvm::xray::Profile` which allows building a
profile representation. We can load an XRay profile from a file to build
Profile instances, or do it manually through the Profile type's API.
The intent is to get the `llvm-xray` tool to generate `Profile`
instances and use that as the common abstraction through which all
conversion and analysis can be done. In the future we can generate
`Profile` instances from `Trace` instances as well, through conversion
functions.
Some of the key operations supported by the `Profile` API are:
- Path interning (`Profile::internPath(...)`) which returns a unique path
identifier.
- Block appending (`Profile::addBlock(...)`) to add thread-associated
profile information.
- Path ID to Path lookup (`Profile::expandPath(...)`) to look up a
PathID and return the original interned path.
- Block iteration.
A 'Path' in this context represents the function call stack in
leaf-to-root order. This is represented as a path in an internally
managed prefix tree in the `Profile` instance. Having a handle (PathID)
to identify the unique Paths we encounter for a particular Profile
allows us to reduce the amount of memory required to associate profile
data to a particular Path.
This is the first of a series of patches to migrate the `llvm-stacks`
tool towards using a single profile representation.
Depends on D48653.
Reviewers: kpw, eizan
Reviewed By: kpw
Subscribers: kpw, thakis, mgorny, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D48370
llvm-svn: 341012
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities')
0 files changed, 0 insertions, 0 deletions