Detemplatize the Statistic class.  The only type it is instantiated with
is 'unsigned'.

llvm-svn: 32279
diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
index e984169..2a06310 100644
--- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -48,11 +48,11 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumArgumentsPromoted("argpromotion",
+  Statistic NumArgumentsPromoted("argpromotion",
                                    "Number of pointer arguments promoted");
-  Statistic<> NumAggregatesPromoted("argpromotion",
+  Statistic NumAggregatesPromoted("argpromotion",
                                     "Number of aggregate arguments promoted");
-  Statistic<> NumArgumentsDead("argpromotion",
+  Statistic NumArgumentsDead("argpromotion",
                                "Number of dead pointer args eliminated");
 
   /// ArgPromotion - The 'by reference' to 'by value' argument promotion pass.
diff --git a/llvm/lib/Transforms/IPO/ConstantMerge.cpp b/llvm/lib/Transforms/IPO/ConstantMerge.cpp
index aca42fe..7ba7b32 100644
--- a/llvm/lib/Transforms/IPO/ConstantMerge.cpp
+++ b/llvm/lib/Transforms/IPO/ConstantMerge.cpp
@@ -24,7 +24,7 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumMerged("constmerge", "Number of global constants merged");
+  Statistic NumMerged("constmerge", "Number of global constants merged");
 
   struct ConstantMerge : public ModulePass {
     // run - For this pass, process all of the globals in the module,
diff --git a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
index 77ac873..d3326ac 100644
--- a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
+++ b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
@@ -33,9 +33,9 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumArgumentsEliminated("deadargelim",
+  Statistic NumArgumentsEliminated("deadargelim",
                                      "Number of unread args removed");
-  Statistic<> NumRetValsEliminated("deadargelim",
+  Statistic NumRetValsEliminated("deadargelim",
                                    "Number of unused return values removed");
 
   /// DAE - The dead argument elimination pass.
diff --git a/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp b/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp
index 57e5fa3..e30e0ed 100644
--- a/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp
+++ b/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp
@@ -37,7 +37,7 @@
     }
   };
   RegisterPass<DTE> X("deadtypeelim", "Dead Type Elimination");
-  Statistic<>
+  Statistic
   NumKilled("deadtypeelim", "Number of unused typenames removed from symtab");
 }
 
diff --git a/llvm/lib/Transforms/IPO/FunctionResolution.cpp b/llvm/lib/Transforms/IPO/FunctionResolution.cpp
index a514b92..de3fe5b 100644
--- a/llvm/lib/Transforms/IPO/FunctionResolution.cpp
+++ b/llvm/lib/Transforms/IPO/FunctionResolution.cpp
@@ -33,8 +33,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<>NumResolved("funcresolve", "Number of varargs functions resolved");
-  Statistic<> NumGlobals("funcresolve", "Number of global variables resolved");
+  Statistic NumResolved("funcresolve", "Number of varargs functions resolved");
+  Statistic NumGlobals("funcresolve", "Number of global variables resolved");
 
   struct FunctionResolvingPass : public ModulePass {
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
diff --git a/llvm/lib/Transforms/IPO/GlobalDCE.cpp b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
index 07296cf..ac23760 100644
--- a/llvm/lib/Transforms/IPO/GlobalDCE.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
@@ -24,8 +24,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumFunctions("globaldce","Number of functions removed");
-  Statistic<> NumVariables("globaldce","Number of global variables removed");
+  Statistic NumFunctions("globaldce","Number of functions removed");
+  Statistic NumVariables("globaldce","Number of global variables removed");
 
   struct GlobalDCE : public ModulePass {
     // run - Do the GlobalDCE pass on the specified module, optionally updating
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
index af3bf6a..a0dc937 100644
--- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
@@ -32,21 +32,21 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumMarked   ("globalopt", "Number of globals marked constant");
-  Statistic<> NumSRA      ("globalopt", "Number of aggregate globals broken "
+  Statistic NumMarked   ("globalopt", "Number of globals marked constant");
+  Statistic NumSRA      ("globalopt", "Number of aggregate globals broken "
                            "into scalars");
-  Statistic<> NumHeapSRA  ("globalopt", "Number of heap objects SRA'd");
-  Statistic<> NumSubstitute("globalopt",
+  Statistic NumHeapSRA  ("globalopt", "Number of heap objects SRA'd");
+  Statistic NumSubstitute("globalopt",
                         "Number of globals with initializers stored into them");
-  Statistic<> NumDeleted  ("globalopt", "Number of globals deleted");
-  Statistic<> NumFnDeleted("globalopt", "Number of functions deleted");
-  Statistic<> NumGlobUses ("globalopt", "Number of global uses devirtualized");
-  Statistic<> NumLocalized("globalopt", "Number of globals localized");
-  Statistic<> NumShrunkToBool("globalopt",
+  Statistic NumDeleted  ("globalopt", "Number of globals deleted");
+  Statistic NumFnDeleted("globalopt", "Number of functions deleted");
+  Statistic NumGlobUses ("globalopt", "Number of global uses devirtualized");
+  Statistic NumLocalized("globalopt", "Number of globals localized");
+  Statistic NumShrunkToBool("globalopt",
                               "Number of global vars shrunk to booleans");
-  Statistic<> NumFastCallFns("globalopt",
+  Statistic NumFastCallFns("globalopt",
                              "Number of functions converted to fastcc");
-  Statistic<> NumCtorsEvaluated("globalopt","Number of static ctors evaluated");
+  Statistic NumCtorsEvaluated("globalopt","Number of static ctors evaluated");
 
   struct GlobalOpt : public ModulePass {
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
diff --git a/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp b/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
index 4713fb6..3f673ae 100644
--- a/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
+++ b/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
@@ -25,9 +25,9 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumArgumentsProped("ipconstprop",
+  Statistic NumArgumentsProped("ipconstprop",
                                  "Number of args turned into constants");
-  Statistic<> NumReturnValProped("ipconstprop",
+  Statistic NumReturnValProped("ipconstprop",
                               "Number of return values turned into constants");
 
   /// IPCP - The interprocedural constant propagation pass
diff --git a/llvm/lib/Transforms/IPO/IndMemRemoval.cpp b/llvm/lib/Transforms/IPO/IndMemRemoval.cpp
index 0779a54..9d3c147 100644
--- a/llvm/lib/Transforms/IPO/IndMemRemoval.cpp
+++ b/llvm/lib/Transforms/IPO/IndMemRemoval.cpp
@@ -28,8 +28,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumBounceSites("indmemrem", "Number of sites modified");
-  Statistic<> NumBounce  ("indmemrem", "Number of bounce functions created");
+  Statistic NumBounceSites("indmemrem", "Number of sites modified");
+  Statistic NumBounce  ("indmemrem", "Number of bounce functions created");
 
   class IndMemRemPass : public ModulePass {
 
diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp b/llvm/lib/Transforms/IPO/Inliner.cpp
index ea43dc2..bd5fb98 100644
--- a/llvm/lib/Transforms/IPO/Inliner.cpp
+++ b/llvm/lib/Transforms/IPO/Inliner.cpp
@@ -26,8 +26,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumInlined("inline", "Number of functions inlined");
-  Statistic<> NumDeleted("inline",
+  Statistic NumInlined("inline", "Number of functions inlined");
+  Statistic NumDeleted("inline",
                        "Number of functions deleted because all callers found");
   cl::opt<unsigned>             // FIXME: 200 is VERY conservative
   InlineLimit("inline-threshold", cl::Hidden, cl::init(200),
diff --git a/llvm/lib/Transforms/IPO/Internalize.cpp b/llvm/lib/Transforms/IPO/Internalize.cpp
index c19e2f2..3e7dcc6 100644
--- a/llvm/lib/Transforms/IPO/Internalize.cpp
+++ b/llvm/lib/Transforms/IPO/Internalize.cpp
@@ -24,8 +24,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumFunctions("internalize", "Number of functions internalized");
-  Statistic<> NumGlobals  ("internalize", "Number of global vars internalized");
+  Statistic NumFunctions("internalize", "Number of functions internalized");
+  Statistic NumGlobals  ("internalize", "Number of global vars internalized");
 
   // APIFile - A file which contains a list of symbols that should not be marked
   // external.
diff --git a/llvm/lib/Transforms/IPO/LoopExtractor.cpp b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
index a4ce585..f77f9f3 100644
--- a/llvm/lib/Transforms/IPO/LoopExtractor.cpp
+++ b/llvm/lib/Transforms/IPO/LoopExtractor.cpp
@@ -26,7 +26,7 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumExtracted("loop-extract", "Number of loops extracted");
+  Statistic NumExtracted("loop-extract", "Number of loops extracted");
 
   // FIXME: This is not a function pass, but the PassManager doesn't allow
   // Module passes to require FunctionPasses, so we can't get loop info if we're
diff --git a/llvm/lib/Transforms/IPO/LowerSetJmp.cpp b/llvm/lib/Transforms/IPO/LowerSetJmp.cpp
index 3aac392..0417a5c 100644
--- a/llvm/lib/Transforms/IPO/LowerSetJmp.cpp
+++ b/llvm/lib/Transforms/IPO/LowerSetJmp.cpp
@@ -50,13 +50,13 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> LongJmpsTransformed("lowersetjmp",
+  Statistic LongJmpsTransformed("lowersetjmp",
                                   "Number of longjmps transformed");
-  Statistic<> SetJmpsTransformed("lowersetjmp",
+  Statistic SetJmpsTransformed("lowersetjmp",
                                  "Number of setjmps transformed");
-  Statistic<> CallsTransformed("lowersetjmp",
+  Statistic CallsTransformed("lowersetjmp",
                                "Number of calls invokified");
-  Statistic<> InvokesTransformed("lowersetjmp",
+  Statistic InvokesTransformed("lowersetjmp",
                                  "Number of invokes modified");
 
   //===--------------------------------------------------------------------===//
diff --git a/llvm/lib/Transforms/IPO/PruneEH.cpp b/llvm/lib/Transforms/IPO/PruneEH.cpp
index 8ba0ac0..1dec7d7 100644
--- a/llvm/lib/Transforms/IPO/PruneEH.cpp
+++ b/llvm/lib/Transforms/IPO/PruneEH.cpp
@@ -28,8 +28,8 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumRemoved("prune-eh", "Number of invokes removed");
-  Statistic<> NumUnreach("prune-eh", "Number of noreturn calls optimized");
+  Statistic NumRemoved("prune-eh", "Number of invokes removed");
+  Statistic NumUnreach("prune-eh", "Number of noreturn calls optimized");
 
   struct PruneEH : public CallGraphSCCPass {
     /// DoesNotUnwind - This set contains all of the functions which we have
diff --git a/llvm/lib/Transforms/IPO/RaiseAllocations.cpp b/llvm/lib/Transforms/IPO/RaiseAllocations.cpp
index 584a2e9..77a9a3d 100644
--- a/llvm/lib/Transforms/IPO/RaiseAllocations.cpp
+++ b/llvm/lib/Transforms/IPO/RaiseAllocations.cpp
@@ -23,7 +23,7 @@
 using namespace llvm;
 
 namespace {
-  Statistic<> NumRaised("raiseallocs", "Number of allocations raised");
+  Statistic NumRaised("raiseallocs", "Number of allocations raised");
 
   // RaiseAllocations - Turn %malloc and %free calls into the appropriate
   // instruction.
diff --git a/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp b/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp
index fb22a2f..f989d1d 100644
--- a/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp
@@ -35,7 +35,7 @@
 
 /// This statistic keeps track of the total number of library calls that have
 /// been simplified regardless of which call it is.
-Statistic<> SimplifiedLibCalls("simplify-libcalls",
+Statistic SimplifiedLibCalls("simplify-libcalls",
   "Number of library calls simplified");
 
 // Forward declarations
@@ -68,7 +68,7 @@
   LibCallOptimization **Prev, *Next;
   const char *FunctionName; ///< Name of the library call we optimize
 #ifndef NDEBUG
-  Statistic<> occurrences; ///< debug statistic (-debug-only=simplify-libcalls)
+  Statistic occurrences; ///< debug statistic (-debug-only=simplify-libcalls)
 #endif
 public:
   /// The \p fname argument must be the name of the library function being