diff options
Diffstat (limited to 'lib/Support/Statistic.cpp')
-rw-r--r-- | lib/Support/Statistic.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/Support/Statistic.cpp b/lib/Support/Statistic.cpp index 1e733d92e610..d8a6ad35ba9c 100644 --- a/lib/Support/Statistic.cpp +++ b/lib/Support/Statistic.cpp @@ -24,6 +24,7 @@ #include "llvm/ADT/Statistic.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" +#include "llvm/Support/Format.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/Mutex.h" @@ -72,9 +73,12 @@ void Statistic::RegisterStatistic() { if (Enabled) StatInfo->addStatistic(this); + TsanHappensBefore(this); sys::MemoryFence(); // Remember we have been registered. + TsanIgnoreWritesBegin(); Initialized = true; + TsanIgnoreWritesEnd(); } } @@ -126,13 +130,11 @@ void llvm::PrintStatistics(raw_ostream &OS) { << "===" << std::string(73, '-') << "===\n\n"; // Print all of the statistics. - for (size_t i = 0, e = Stats.Stats.size(); i != e; ++i) { - std::string CountStr = utostr(Stats.Stats[i]->getValue()); - OS << std::string(MaxValLen-CountStr.size(), ' ') - << CountStr << " " << Stats.Stats[i]->getName() - << std::string(MaxNameLen-std::strlen(Stats.Stats[i]->getName()), ' ') - << " - " << Stats.Stats[i]->getDesc() << "\n"; - } + for (size_t i = 0, e = Stats.Stats.size(); i != e; ++i) + OS << format("%*u %-*s - %s\n", + MaxValLen, Stats.Stats[i]->getValue(), + MaxNameLen, Stats.Stats[i]->getName(), + Stats.Stats[i]->getDesc()); OS << '\n'; // Flush the output stream. OS.flush(); |