From 86453c52ba02e743d29c08456e51006500041456 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 19 Dec 2006 22:09:18 +0000 Subject: Eliminate static ctors due to Statistic objects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32693 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/ArgumentPromotion.cpp | 11 ++++------ lib/Transforms/IPO/ConstantMerge.cpp | 5 +++-- lib/Transforms/IPO/DeadArgumentElimination.cpp | 8 +++----- lib/Transforms/IPO/DeadTypeElimination.cpp | 5 +++-- lib/Transforms/IPO/FunctionResolution.cpp | 7 ++++--- lib/Transforms/IPO/GlobalDCE.cpp | 7 ++++--- lib/Transforms/IPO/GlobalOpt.cpp | 28 +++++++++++--------------- lib/Transforms/IPO/IPConstantPropagation.cpp | 9 ++++----- lib/Transforms/IPO/IndMemRemoval.cpp | 17 ++++------------ lib/Transforms/IPO/Inliner.cpp | 7 ++++--- lib/Transforms/IPO/Internalize.cpp | 6 ++++-- lib/Transforms/IPO/LoopExtractor.cpp | 5 +++-- lib/Transforms/IPO/LowerSetJmp.cpp | 15 ++++++-------- lib/Transforms/IPO/PruneEH.cpp | 7 ++++--- lib/Transforms/IPO/RaiseAllocations.cpp | 5 +++-- lib/Transforms/IPO/SimplifyLibCalls.cpp | 14 ++++++------- 16 files changed, 71 insertions(+), 85 deletions(-) (limited to 'lib/Transforms') diff --git a/lib/Transforms/IPO/ArgumentPromotion.cpp b/lib/Transforms/IPO/ArgumentPromotion.cpp index 2a06310065..ab52baf850 100644 --- a/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -47,14 +47,11 @@ #include using namespace llvm; -namespace { - Statistic NumArgumentsPromoted("argpromotion", - "Number of pointer arguments promoted"); - Statistic NumAggregatesPromoted("argpromotion", - "Number of aggregate arguments promoted"); - Statistic NumArgumentsDead("argpromotion", - "Number of dead pointer args eliminated"); +STATISTIC(NumArgumentsPromoted , "Number of pointer arguments promoted"); +STATISTIC(NumAggregatesPromoted, "Number of aggregate arguments promoted"); +STATISTIC(NumArgumentsDead , "Number of dead pointer args eliminated"); +namespace { /// ArgPromotion - The 'by reference' to 'by value' argument promotion pass. /// struct ArgPromotion : public CallGraphSCCPass { diff --git a/lib/Transforms/IPO/ConstantMerge.cpp b/lib/Transforms/IPO/ConstantMerge.cpp index 7ba7b32a7e..291653376e 100644 --- a/lib/Transforms/IPO/ConstantMerge.cpp +++ b/lib/Transforms/IPO/ConstantMerge.cpp @@ -17,15 +17,16 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "constmerge" #include "llvm/Transforms/IPO.h" #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/ADT/Statistic.h" using namespace llvm; -namespace { - Statistic NumMerged("constmerge", "Number of global constants merged"); +STATISTIC(NumMerged, "Number of global constants merged"); +namespace { struct ConstantMerge : public ModulePass { // run - For this pass, process all of the globals in the module, // eliminating duplicate constants. diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index dbcc501890..9d88a8879f 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -32,12 +32,10 @@ #include using namespace llvm; -namespace { - Statistic NumArgumentsEliminated("deadargelim", - "Number of unread args removed"); - Statistic NumRetValsEliminated("deadargelim", - "Number of unused return values removed"); +STATISTIC(NumArgumentsEliminated, "Number of unread args removed"); +STATISTIC(NumRetValsEliminated , "Number of unused return values removed"); +namespace { /// DAE - The dead argument elimination pass. /// class DAE : public ModulePass { diff --git a/lib/Transforms/IPO/DeadTypeElimination.cpp b/lib/Transforms/IPO/DeadTypeElimination.cpp index e30e0ed38c..8199f746a2 100644 --- a/lib/Transforms/IPO/DeadTypeElimination.cpp +++ b/lib/Transforms/IPO/DeadTypeElimination.cpp @@ -12,6 +12,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "deadtypeelim" #include "llvm/Transforms/IPO.h" #include "llvm/Analysis/FindUsedTypes.h" #include "llvm/Module.h" @@ -20,6 +21,8 @@ #include "llvm/ADT/Statistic.h" using namespace llvm; +STATISTIC(NumKilled, "Number of unused typenames removed from symtab"); + namespace { struct DTE : public ModulePass { // doPassInitialization - For this pass, it removes global symbol table @@ -37,8 +40,6 @@ namespace { } }; RegisterPass X("deadtypeelim", "Dead Type Elimination"); - Statistic - NumKilled("deadtypeelim", "Number of unused typenames removed from symtab"); } ModulePass *llvm::createDeadTypeEliminationPass() { diff --git a/lib/Transforms/IPO/FunctionResolution.cpp b/lib/Transforms/IPO/FunctionResolution.cpp index 6f1eea0276..2ffbc7b9ae 100644 --- a/lib/Transforms/IPO/FunctionResolution.cpp +++ b/lib/Transforms/IPO/FunctionResolution.cpp @@ -18,6 +18,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "funcresolve" #include "llvm/Transforms/IPO.h" #include "llvm/Module.h" #include "llvm/DerivedTypes.h" @@ -31,10 +32,10 @@ #include using namespace llvm; -namespace { - Statistic NumResolved("funcresolve", "Number of varargs functions resolved"); - Statistic NumGlobals("funcresolve", "Number of global variables resolved"); +STATISTIC(NumResolved, "Number of varargs functions resolved"); +STATISTIC(NumGlobals, "Number of global variables resolved"); +namespace { struct FunctionResolvingPass : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired(); diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index ac23760bf2..17dcb31859 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -15,6 +15,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "globaldce" #include "llvm/Transforms/IPO.h" #include "llvm/Constants.h" #include "llvm/Module.h" @@ -23,10 +24,10 @@ #include using namespace llvm; -namespace { - Statistic NumFunctions("globaldce","Number of functions removed"); - Statistic NumVariables("globaldce","Number of global variables removed"); +STATISTIC(NumFunctions, "Number of functions removed"); +STATISTIC(NumVariables, "Number of global variables removed"); +namespace { struct GlobalDCE : public ModulePass { // run - Do the GlobalDCE pass on the specified module, optionally updating // the specified callgraph to reflect the changes. diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index cf9cdaa744..425bcc588b 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -31,23 +31,19 @@ #include using namespace llvm; -namespace { - 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", - "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", - "Number of global vars shrunk to booleans"); - Statistic NumFastCallFns("globalopt", - "Number of functions converted to fastcc"); - Statistic NumCtorsEvaluated("globalopt","Number of static ctors evaluated"); +STATISTIC(NumMarked , "Number of globals marked constant"); +STATISTIC(NumSRA , "Number of aggregate globals broken into scalars"); +STATISTIC(NumHeapSRA , "Number of heap objects SRA'd"); +STATISTIC(NumSubstitute,"Number of globals with initializers stored into them"); +STATISTIC(NumDeleted , "Number of globals deleted"); +STATISTIC(NumFnDeleted , "Number of functions deleted"); +STATISTIC(NumGlobUses , "Number of global uses devirtualized"); +STATISTIC(NumLocalized , "Number of globals localized"); +STATISTIC(NumShrunkToBool , "Number of global vars shrunk to booleans"); +STATISTIC(NumFastCallFns , "Number of functions converted to fastcc"); +STATISTIC(NumCtorsEvaluated, "Number of static ctors evaluated"); +namespace { struct GlobalOpt : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired(); diff --git a/lib/Transforms/IPO/IPConstantPropagation.cpp b/lib/Transforms/IPO/IPConstantPropagation.cpp index 3f673ae85e..be18f002e8 100644 --- a/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/lib/Transforms/IPO/IPConstantPropagation.cpp @@ -15,6 +15,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "ipconstprop" #include "llvm/Transforms/IPO.h" #include "llvm/Constants.h" #include "llvm/Instructions.h" @@ -24,12 +25,10 @@ #include "llvm/ADT/Statistic.h" using namespace llvm; -namespace { - Statistic NumArgumentsProped("ipconstprop", - "Number of args turned into constants"); - Statistic NumReturnValProped("ipconstprop", - "Number of return values turned into constants"); +STATISTIC(NumArgumentsProped, "Number of args turned into constants"); +STATISTIC(NumReturnValProped, "Number of return values turned into constants"); +namespace { /// IPCP - The interprocedural constant propagation pass /// struct IPCP : public ModulePass { diff --git a/lib/Transforms/IPO/IndMemRemoval.cpp b/lib/Transforms/IPO/IndMemRemoval.cpp index 9ad25dd9fa..82aa992a09 100644 --- a/lib/Transforms/IPO/IndMemRemoval.cpp +++ b/lib/Transforms/IPO/IndMemRemoval.cpp @@ -15,36 +15,27 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "indmemrem" #include "llvm/Transforms/IPO.h" #include "llvm/Pass.h" #include "llvm/Module.h" -#include "llvm/Function.h" #include "llvm/Instructions.h" #include "llvm/Type.h" -#include "llvm/Support/Debug.h" #include "llvm/ADT/Statistic.h" -#include -#include using namespace llvm; -namespace { - Statistic NumBounceSites("indmemrem", "Number of sites modified"); - Statistic NumBounce ("indmemrem", "Number of bounce functions created"); +STATISTIC(NumBounceSites, "Number of sites modified"); +STATISTIC(NumBounce , "Number of bounce functions created"); +namespace { class IndMemRemPass : public ModulePass { - public: - IndMemRemPass(); virtual bool runOnModule(Module &M); }; RegisterPass X("indmemrem","Indirect Malloc and Free Removal"); } // end anonymous namespace -IndMemRemPass::IndMemRemPass() -{ -} - bool IndMemRemPass::runOnModule(Module &M) { //in Theory, all direct calls of malloc and free should be promoted //to intrinsics. Therefor, this goes through and finds where the diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp index bd5fb98416..27dbf8ba50 100644 --- a/lib/Transforms/IPO/Inliner.cpp +++ b/lib/Transforms/IPO/Inliner.cpp @@ -13,6 +13,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "inline" #include "Inliner.h" #include "llvm/Module.h" #include "llvm/Instructions.h" @@ -25,10 +26,10 @@ #include using namespace llvm; +STATISTIC(NumInlined, "Number of functions inlined"); +STATISTIC(NumDeleted, "Number of functions deleted because all callers found"); + namespace { - Statistic NumInlined("inline", "Number of functions inlined"); - Statistic NumDeleted("inline", - "Number of functions deleted because all callers found"); cl::opt // FIXME: 200 is VERY conservative InlineLimit("inline-threshold", cl::Hidden, cl::init(200), cl::desc("Control the amount of inlining to perform (default = 200)")); diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index f43a27f698..bf99235fb8 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -13,6 +13,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "internalize" #include "llvm/Transforms/IPO.h" #include "llvm/Pass.h" #include "llvm/Module.h" @@ -23,9 +24,10 @@ #include using namespace llvm; +STATISTIC(NumFunctions, "Number of functions internalized"); +STATISTIC(NumGlobals , "Number of global vars internalized"); + namespace { - 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/lib/Transforms/IPO/LoopExtractor.cpp b/lib/Transforms/IPO/LoopExtractor.cpp index f77f9f3257..5a6e7671d1 100644 --- a/lib/Transforms/IPO/LoopExtractor.cpp +++ b/lib/Transforms/IPO/LoopExtractor.cpp @@ -14,6 +14,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "loop-extract" #include "llvm/Transforms/IPO.h" #include "llvm/Instructions.h" #include "llvm/Module.h" @@ -25,9 +26,9 @@ #include "llvm/ADT/Statistic.h" using namespace llvm; -namespace { - Statistic NumExtracted("loop-extract", "Number of loops extracted"); +STATISTIC(NumExtracted, "Number of loops extracted"); +namespace { // 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 // not a function pass. diff --git a/lib/Transforms/IPO/LowerSetJmp.cpp b/lib/Transforms/IPO/LowerSetJmp.cpp index 0417a5cc27..d7f22fb9cb 100644 --- a/lib/Transforms/IPO/LowerSetJmp.cpp +++ b/lib/Transforms/IPO/LowerSetJmp.cpp @@ -33,6 +33,7 @@ // pass invokable via the "opt" command at will. //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "lowersetjmp" #include "llvm/Transforms/IPO.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" @@ -49,16 +50,12 @@ #include "llvm/ADT/VectorExtras.h" using namespace llvm; -namespace { - Statistic LongJmpsTransformed("lowersetjmp", - "Number of longjmps transformed"); - Statistic SetJmpsTransformed("lowersetjmp", - "Number of setjmps transformed"); - Statistic CallsTransformed("lowersetjmp", - "Number of calls invokified"); - Statistic InvokesTransformed("lowersetjmp", - "Number of invokes modified"); +STATISTIC(LongJmpsTransformed, "Number of longjmps transformed"); +STATISTIC(SetJmpsTransformed , "Number of setjmps transformed"); +STATISTIC(CallsTransformed , "Number of calls invokified"); +STATISTIC(InvokesTransformed , "Number of invokes modified"); +namespace { //===--------------------------------------------------------------------===// // LowerSetJmp pass implementation. class LowerSetJmp : public ModulePass, diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index 1dec7d7047..14daf13ecd 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -14,6 +14,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "prune-eh" #include "llvm/Transforms/IPO.h" #include "llvm/CallGraphSCCPass.h" #include "llvm/Constants.h" @@ -27,10 +28,10 @@ #include using namespace llvm; -namespace { - Statistic NumRemoved("prune-eh", "Number of invokes removed"); - Statistic NumUnreach("prune-eh", "Number of noreturn calls optimized"); +STATISTIC(NumRemoved, "Number of invokes removed"); +STATISTIC(NumUnreach, "Number of noreturn calls optimized"); +namespace { struct PruneEH : public CallGraphSCCPass { /// DoesNotUnwind - This set contains all of the functions which we have /// determined cannot unwind. diff --git a/lib/Transforms/IPO/RaiseAllocations.cpp b/lib/Transforms/IPO/RaiseAllocations.cpp index 46c6815994..58f0d1b0a3 100644 --- a/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/lib/Transforms/IPO/RaiseAllocations.cpp @@ -12,6 +12,7 @@ // //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "raiseallocs" #include "llvm/Transforms/IPO.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" @@ -22,9 +23,9 @@ #include "llvm/ADT/Statistic.h" using namespace llvm; -namespace { - Statistic NumRaised("raiseallocs", "Number of allocations raised"); +STATISTIC(NumRaised, "Number of allocations raised"); +namespace { // RaiseAllocations - Turn %malloc and %free calls into the appropriate // instruction. // diff --git a/lib/Transforms/IPO/SimplifyLibCalls.cpp b/lib/Transforms/IPO/SimplifyLibCalls.cpp index 2c3b66600b..08ae1994a6 100644 --- a/lib/Transforms/IPO/SimplifyLibCalls.cpp +++ b/lib/Transforms/IPO/SimplifyLibCalls.cpp @@ -31,17 +31,15 @@ #include "llvm/Transforms/IPO.h" using namespace llvm; -namespace { - /// 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", - "Number of library calls simplified"); - -// Forward declarations -class LibCallOptimization; -class SimplifyLibCalls; +STATISTIC(SimplifiedLibCalls, "Number of library calls simplified"); +namespace { + // Forward declarations + class LibCallOptimization; + class SimplifyLibCalls; + /// This list is populated by the constructor for LibCallOptimization class. /// Therefore all subclasses are registered here at static initialization time /// and this list is what the SimplifyLibCalls pass uses to apply the individual -- cgit v1.2.3