summaryrefslogtreecommitdiffstats
path: root/llvm/lib/XRay/Trace.cpp
diff options
context:
space:
mode:
authorDean Michael Berris <dberris@google.com>2018-11-01 00:18:52 +0000
committerDean Michael Berris <dberris@google.com>2018-11-01 00:18:52 +0000
commit6b67ff03002f39adf773f456aa4fd79bb22f3a04 (patch)
tree69edb04de2b575e8af2eaae3fae04c9d65fc8797 /llvm/lib/XRay/Trace.cpp
parentd4891a1b7add681782e1e2ea8922facbf2c10f4c (diff)
downloadbcm5719-llvm-6b67ff03002f39adf773f456aa4fd79bb22f3a04.tar.gz
bcm5719-llvm-6b67ff03002f39adf773f456aa4fd79bb22f3a04.zip
[XRay] Add CPU ID in Custom Event FDR Records
Summary: This change cuts across compiler-rt and llvm, to increment the FDR log version number to 4, and include the CPU ID in the custom event records. This is a step towards allowing us to change the `llvm::xray::Trace` object to start representing both custom and typed events in the stream of records. Follow-on changes will allow us to change the kinds of records we're presenting in the stream of traces, to incorporate the data in custom/typed events. A follow-on change will handle the typed event case, where it may not fit within the 15-byte buffer for metadata records. This work is part of the larger effort to enable writing analysis and processing tools using a common in-memory representation of the events found in traces. The work will focus on porting existing tools in LLVM to use the common representation and informing the design of a library/framework for expressing trace event analysis as C++ programs. Reviewers: mboerger, eizan Subscribers: hiraditya, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D53920 llvm-svn: 345798
Diffstat (limited to 'llvm/lib/XRay/Trace.cpp')
-rw-r--r--llvm/lib/XRay/Trace.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/XRay/Trace.cpp b/llvm/lib/XRay/Trace.cpp
index 1d7c723864d..e7b878cb83f 100644
--- a/llvm/lib/XRay/Trace.cpp
+++ b/llvm/lib/XRay/Trace.cpp
@@ -310,12 +310,11 @@ Error loadFDRLog(StringRef Data, bool IsLittleEndian,
{
for (auto &PTB : Index) {
auto &Blocks = PTB.second;
- llvm::sort(
- Blocks,
- [](const BlockIndexer::Block &L, const BlockIndexer::Block &R) {
- return (L.WallclockTime->seconds() < R.WallclockTime->seconds() &&
- L.WallclockTime->nanos() < R.WallclockTime->nanos());
- });
+ llvm::sort(Blocks, [](const BlockIndexer::Block &L,
+ const BlockIndexer::Block &R) {
+ return (L.WallclockTime->seconds() < R.WallclockTime->seconds() &&
+ L.WallclockTime->nanos() < R.WallclockTime->nanos());
+ });
auto Adder = [&](const XRayRecord &R) { Records.push_back(R); };
TraceExpander Expander(Adder, FileHeader.Version);
for (auto &B : Blocks) {
@@ -435,7 +434,7 @@ Expected<Trace> llvm::xray::loadTrace(const DataExtractor &DE, bool Sort) {
}
break;
case FLIGHT_DATA_RECORDER_FORMAT:
- if (Version == 1 || Version == 2 || Version == 3) {
+ if (Version >= 1 && Version <= 4) {
if (auto E = loadFDRLog(DE.getData(), DE.isLittleEndian(), T.FileHeader,
T.Records))
return std::move(E);
OpenPOWER on IntegriCloud