diff options
Diffstat (limited to 'lld/include/lld/Common/Timer.h')
-rw-r--r-- | lld/include/lld/Common/Timer.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lld/include/lld/Common/Timer.h b/lld/include/lld/Common/Timer.h index 4a298b04a30b..95e811a2f9f0 100644 --- a/lld/include/lld/Common/Timer.h +++ b/lld/include/lld/Common/Timer.h @@ -12,6 +12,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringRef.h" #include <assert.h> +#include <atomic> #include <chrono> #include <map> #include <memory> @@ -27,6 +28,8 @@ struct ScopedTimer { void stop(); + std::chrono::time_point<std::chrono::high_resolution_clock> startTime; + Timer *t = nullptr; }; @@ -36,8 +39,7 @@ public: static Timer &root(); - void start(); - void stop(); + void addToTotal(std::chrono::nanoseconds time) { total += time.count(); } void print(); double millis() const; @@ -46,11 +48,9 @@ private: explicit Timer(llvm::StringRef name); void print(int depth, double totalDuration, bool recurse = true) const; - std::chrono::time_point<std::chrono::high_resolution_clock> startTime; - std::chrono::nanoseconds total; + std::atomic<std::chrono::nanoseconds::rep> total; std::vector<Timer *> children; std::string name; - Timer *parent; }; } // namespace lld |