merge the Statistic and StatisticBase classes, eliminating virtual methods
and eliminating #includes from the Statistic.h file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32282 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/Statistic.cpp b/lib/Support/Statistic.cpp
index cd51662..19cfff3 100644
--- a/lib/Support/Statistic.cpp
+++ b/lib/Support/Statistic.cpp
@@ -23,6 +23,7 @@
 
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/ADT/StringExtras.h"
 #include <sstream>
 #include <iostream>
 #include <algorithm>
@@ -31,7 +32,7 @@
 // GetLibSupportInfoOutputFile - Return a file stream to print our output on...
 namespace llvm { extern std::ostream *GetLibSupportInfoOutputFile(); }
 
-unsigned StatisticBase::NumStats = 0;
+unsigned Statistic::NumStats = 0;
 
 // -stats - Command line option to cause transformations to emit stats about
 // what they did.
@@ -61,19 +62,13 @@
 
 static std::vector<StatRecord> *AccumStats = 0;
 
-// Out of line virtual dtor, to give the vtable etc a home.
-StatisticBase::~StatisticBase() {
-}
-
 // Print information when destroyed, iff command line option is specified
-void StatisticBase::destroy() const {
-  if (Enabled && hasSomeData()) {
+Statistic::~Statistic() {
+  if (Enabled && Value != 0) {
     if (AccumStats == 0)
       AccumStats = new std::vector<StatRecord>();
 
-    std::ostringstream Out;
-    printValue(Out);
-    AccumStats->push_back(StatRecord(Out.str(), Name, Desc));
+    AccumStats->push_back(StatRecord(utostr(Value), Name, Desc));
   }
 
   if (--NumStats == 0 && AccumStats) {