11#ifndef PROTEUS_TIME_TRACING_HPP
12#define PROTEUS_TIME_TRACING_HPP
17#include <llvm/Support/TimeProfiler.h>
47 using Clock = std::chrono::steady_clock;
56 return std::chrono::duration_cast<std::chrono::milliseconds>(Clock::now() -
61 void reset() { Start = Clock::now(); }
64 Clock::time_point Start;
67#define PROTEUS_TIMER_OUTPUT(x) \
68 if (Config::get().ProteusEnableTimers) \
72 TimeTraceOptional TTS; \
73 if (Config::get().ProteusEnableTimeTrace) { \
static Config & get()
Definition Config.hpp:298
std::string ProteusTimeTraceFile
Definition Config.hpp:318
Definition TimeTracing.hpp:46
Timer()
Definition TimeTracing.hpp:50
void reset()
Definition TimeTracing.hpp:61
uint64_t elapsed()
Definition TimeTracing.hpp:55
Definition ObjectCacheChain.cpp:25
T getRuntimeConstantValue(void *Arg)
Definition CompilerInterfaceRuntimeConstantInfo.h:114
std::optional< TimeTraceScope > TimeTraceOptional
Definition TimeTracing.hpp:25
Definition TimeTracing.hpp:27
TimeTracerRAII()
Definition TimeTracing.hpp:28
~TimeTracerRAII()
Definition TimeTracing.hpp:34