diff options
Diffstat (limited to 'llvm/lib/Support/Statistic.cpp')
-rw-r--r-- | llvm/lib/Support/Statistic.cpp | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/llvm/lib/Support/Statistic.cpp b/llvm/lib/Support/Statistic.cpp index 67b07162b9a..370274dc299 100644 --- a/llvm/lib/Support/Statistic.cpp +++ b/llvm/lib/Support/Statistic.cpp @@ -52,14 +52,11 @@ static bool Enabled; static bool PrintOnExit; namespace { -/// This class is used in a ManagedStatic so that it is created on demand (when -/// the first statistic is bumped) and destroyed only when llvm_shutdown is -/// called. We print statistics from the destructor. -/// This class is also used to look up statistic values from applications that -/// use LLVM. +/// StatisticInfo - This class is used in a ManagedStatic so that it is created +/// on demand (when the first statistic is bumped) and destroyed only when +/// llvm_shutdown is called. We print statistics from the destructor. class StatisticInfo { std::vector<const Statistic*> Stats; - friend void llvm::PrintStatistics(); friend void llvm::PrintStatistics(raw_ostream &OS); friend void llvm::PrintStatisticsJSON(raw_ostream &OS); @@ -67,22 +64,14 @@ class StatisticInfo { /// Sort statistics by debugtype,name,description. void sort(); public: - using const_iterator = std::vector<const Statistic *>::const_iterator; - StatisticInfo(); ~StatisticInfo(); void addStatistic(const Statistic *S) { Stats.push_back(S); } - - const_iterator begin() const { return Stats.begin(); } - const_iterator end() const { return Stats.end(); } - iterator_range<const_iterator> statistics() const { - return {begin(), end()}; - } }; -} // end anonymous namespace +} static ManagedStatic<StatisticInfo> StatInfo; static ManagedStatic<sys::SmartMutex<true> > StatLock; @@ -191,7 +180,7 @@ void llvm::PrintStatisticsJSON(raw_ostream &OS) { } void llvm::PrintStatistics() { -#if LLVM_ENABLE_STATS +#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS) StatisticInfo &Stats = *StatInfo; // Statistics not enabled? @@ -216,12 +205,3 @@ void llvm::PrintStatistics() { } #endif } - -const std::vector<std::pair<StringRef, unsigned>> llvm::GetStatistics() { - sys::SmartScopedLock<true> Reader(*StatLock); - std::vector<std::pair<StringRef, unsigned>> ReturnStats; - - for (const auto &Stat : StatInfo->statistics()) - ReturnStats.emplace_back(Stat->getName(), Stat->getValue()); - return ReturnStats; -} |