mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +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
29 lines
493 B
CMake
29 lines
493 B
CMake
add_llvm_library(LLVMXRay
|
|
BlockIndexer.cpp
|
|
BlockPrinter.cpp
|
|
BlockVerifier.cpp
|
|
FDRRecordProducer.cpp
|
|
FDRRecords.cpp
|
|
FDRTraceExpander.cpp
|
|
FDRTraceWriter.cpp
|
|
FileHeaderReader.cpp
|
|
InstrumentationMap.cpp
|
|
LogBuilderConsumer.cpp
|
|
Profile.cpp
|
|
RecordInitializer.cpp
|
|
RecordPrinter.cpp
|
|
Trace.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/XRay
|
|
|
|
DEPENDS
|
|
LLVMSupport
|
|
LLVMObject
|
|
|
|
LINK_LIBS
|
|
LLVMSupport
|
|
LLVMObject
|
|
)
|