11#ifndef PROTEUS_TIME_TRACING_HPP
12#define PROTEUS_TIME_TRACING_HPP
14#include <llvm/Support/TimeProfiler.h>
28 if (
auto E = timeTraceProfilerWrite(
"",
"-")) {
29 handleAllErrors(std::move(E));
32 timeTraceProfilerCleanup();
37 using Clock = std::chrono::steady_clock;
46 return std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now() -
51 void reset() { Start = Clock::now(); }
54 Clock::time_point Start;
57#define PROTEUS_TIMER_OUTPUT(x) \
58 if (Config::get().ProteusEnableTimers) \
61#if PROTEUS_ENABLE_TIME_TRACING
62#define TIMESCOPE(x) TimeTraceScope TTS(x);
static Config & get()
Definition Config.hpp:112
Definition TimeTracing.hpp:36
Timer()
Definition TimeTracing.hpp:40
void reset()
Definition TimeTracing.hpp:51
uint64_t elapsed()
Definition TimeTracing.hpp:45
Definition Dispatcher.cpp:14
Definition TimeTracing.hpp:24
TimeTracerRAII()
Definition TimeTracing.hpp:25
~TimeTracerRAII()
Definition TimeTracing.hpp:27