summaryrefslogtreecommitdiff
path: root/lld/include/lld/Common/Timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/include/lld/Common/Timer.h')
-rw-r--r--lld/include/lld/Common/Timer.h10
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