OSDN Git Service

Statistic: Bring back printing on exit by default
authorMatthias Braun <matze@braunis.de>
Tue, 27 Sep 2016 19:38:55 +0000 (19:38 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 27 Sep 2016 19:38:55 +0000 (19:38 +0000)
Turns out several external projects relied on llvm printing statistics
on exit. Let's go back to this behaviour by default and have an optional
parameter to disable it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282532 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/Statistic.h
lib/Support/Statistic.cpp

index c541383..0f797ec 100644 (file)
@@ -151,7 +151,7 @@ protected:
   static llvm::Statistic VARNAME = {DEBUG_TYPE, #VARNAME, DESC, {0}, false}
 
 /// \brief Enable the collection and printing of statistics.
-void EnableStatistics();
+void EnableStatistics(bool PrintOnExit = true);
 
 /// \brief Check if statistics are enabled.
 bool AreStatisticsEnabled();
index 7747781..d299bfc 100644 (file)
@@ -45,6 +45,7 @@ static cl::opt<bool> StatsAsJSON("stats-json",
                                  cl::desc("Display statistics as json data"));
 
 static bool Enabled;
+static bool PrintOnExit;
 
 namespace {
 /// StatisticInfo - This class is used in a ManagedStatic so that it is created
@@ -91,12 +92,13 @@ void Statistic::RegisterStatistic() {
 
 // Print information when destroyed, iff command line option is specified.
 StatisticInfo::~StatisticInfo() {
-  if (::Stats)
+  if (::Stats || PrintOnExit)
     llvm::PrintStatistics();
 }
 
-void llvm::EnableStatistics() {
+void llvm::EnableStatistics(bool PrintOnExit) {
   Enabled = true;
+  ::PrintOnExit = PrintOnExit;
 }
 
 bool llvm::AreStatisticsEnabled() {