mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
76f5aab534
Summary: In this change, we overhaul the implementation for loading `llvm::xray::Trace` objects from files by using the combination of specific FDR Record types and visitors breaking up the logic to reconstitute an execution trace from flight-data recorder mode traces. This change allows us to handle out-of-temporal order blocks as written in files, and more consistently recreate an execution trace spanning multiple blocks and threads. To do this, we use the `WallclockRecord` associated with each block to maintain temporal order of blocks, before attempting to recreate an execution trace. The new addition in this change is the `TraceExpander` type which can be thought of as a decompression/decoding routine. This allows us to maintain the state of an execution environment (thread+process) and create `XRayRecord` instances that fit nicely into the `Trace` container. We don't have a specific unit test for the TraceExpander type, since the end-to-end tests for the `llvm-xray convert` tools already cover precisely this codepath. This change completes the refactoring started with D50441. Depends on D51911. Reviewers: mboerger, eizan Subscribers: mgorny, hiraditya, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D51912 llvm-svn: 341906 |
||
---|---|---|
.. | ||
BlockIndexer.h | ||
BlockPrinter.h | ||
BlockVerifier.h | ||
FDRLogBuilder.h | ||
FDRRecordConsumer.h | ||
FDRRecordProducer.h | ||
FDRRecords.h | ||
FDRTraceExpander.h | ||
FDRTraceWriter.h | ||
FileHeaderReader.h | ||
Graph.h | ||
InstrumentationMap.h | ||
Profile.h | ||
RecordPrinter.h | ||
Trace.h | ||
XRayRecord.h | ||
YAMLXRayRecord.h |