[all-commits] [llvm/llvm-project] 289910: [TimeProfiler] Emit clock synchronization point
Sergej Jaskiewicz via All-commits
all-commits at lists.llvm.org
Wed Apr 22 15:09:57 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 2899103108d38215af8aae377cd0e54794278209
https://github.com/llvm/llvm-project/commit/2899103108d38215af8aae377cd0e54794278209
Author: Sergej Jaskiewicz <jaskiewiczs at icloud.com>
Date: 2020-04-23 (Thu, 23 Apr 2020)
Changed paths:
M clang/test/Driver/check-time-trace-sections.py
M clang/test/Driver/check-time-trace.cpp
M lld/test/ELF/time-trace.s
M llvm/lib/Support/TimeProfiler.cpp
Log Message:
-----------
[TimeProfiler] Emit clock synchronization point
Time profiler emits relative timestamps for events (the number of
microseconds passed since the start of the current process).
This patch allows combining events from different processes while
preserving their relative timing by emitting a new attribute
"beginningOfTime". This attribute contains the system time that
corresponds to the zero timestamp of the time profiler.
This has at least two use cases:
- Build systems can use this to merge time traces from multiple compiler
invocations and generate statistics for the whole build. Tools like
ClangBuildAnalyzer could also leverage this feature.
- Compilers that use LLVM as their backend by invoking llc/opt in
a child process. If such a compiler supports generating time traces
of its own events, it could merge those events with LLVM-specific
events received from llc/opt, and produce a more complete time trace.
A proof-of-concept script that merges multiple logs that
contain a synchronization point into one log:
https://github.com/broadwaylamb/merge_trace_events
Differential Revision: https://reviews.llvm.org/D78030
More information about the All-commits
mailing list