diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2007-02-05 23:32:05 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2007-02-05 23:32:05 +0000 |
commit | 9133fe28954d498fc4de13064c7d65bd811de02c (patch) | |
tree | 0117d56610e0b7ff16138107397c990d3b8bb580 | |
parent | a0d1548d0db3bb2893cd04f4d92c066c7d1cdf5f (diff) |
Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in
the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33939 91177308-0d34-0410-b5e6-96231b3b80d8
46 files changed, 146 insertions, 97 deletions
diff --git a/lib/Transforms/IPO/ArgumentPromotion.cpp b/lib/Transforms/IPO/ArgumentPromotion.cpp index 8e51e77b86..3c57649f4e 100644 --- a/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -44,6 +44,7 @@ #include "llvm/ADT/DepthFirstIterator.h" #include "llvm/ADT/Statistic.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/Support/Compiler.h" #include <set> using namespace llvm; @@ -54,7 +55,7 @@ STATISTIC(NumArgumentsDead , "Number of dead pointer args eliminated"); namespace { /// ArgPromotion - The 'by reference' to 'by value' argument promotion pass. /// - struct ArgPromotion : public CallGraphSCCPass { + struct VISIBILITY_HIDDEN ArgPromotion : public CallGraphSCCPass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<AliasAnalysis>(); AU.addRequired<TargetData>(); diff --git a/lib/Transforms/IPO/ConstantMerge.cpp b/lib/Transforms/IPO/ConstantMerge.cpp index 291653376e..11ec09ab2e 100644 --- a/lib/Transforms/IPO/ConstantMerge.cpp +++ b/lib/Transforms/IPO/ConstantMerge.cpp @@ -22,12 +22,13 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" using namespace llvm; STATISTIC(NumMerged, "Number of global constants merged"); namespace { - struct ConstantMerge : public ModulePass { + struct VISIBILITY_HIDDEN 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 fd1be4dda2..149043d05c 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -29,6 +29,7 @@ #include "llvm/Support/CallSite.h" #include "llvm/Support/Debug.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" #include <set> using namespace llvm; @@ -38,7 +39,7 @@ STATISTIC(NumRetValsEliminated , "Number of unused return values removed"); namespace { /// DAE - The dead argument elimination pass. /// - class DAE : public ModulePass { + class VISIBILITY_HIDDEN DAE : public ModulePass { /// Liveness enum - During our initial pass over the program, we determine /// that things are either definately alive, definately dead, or in need of /// interprocedural analysis (MaybeLive). diff --git a/lib/Transforms/IPO/DeadTypeElimination.cpp b/lib/Transforms/IPO/DeadTypeElimination.cpp index 18724bb9db..a72a48cc63 100644 --- a/lib/Transforms/IPO/DeadTypeElimination.cpp +++ b/lib/Transforms/IPO/DeadTypeElimination.cpp @@ -19,12 +19,13 @@ #include "llvm/TypeSymbolTable.h" #include "llvm/DerivedTypes.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" using namespace llvm; STATISTIC(NumKilled, "Number of unused typenames removed from symtab"); namespace { - struct DTE : public ModulePass { + struct VISIBILITY_HIDDEN DTE : public ModulePass { // doPassInitialization - For this pass, it removes global symbol table // entries for primitive types. These are never used for linking in GCC and // they make the output uglier to look at, so we nuke them. diff --git a/lib/Transforms/IPO/ExtractFunction.cpp b/lib/Transforms/IPO/ExtractFunction.cpp index f8771845a6..ae1eb22478 100644 --- a/lib/Transforms/IPO/ExtractFunction.cpp +++ b/lib/Transforms/IPO/ExtractFunction.cpp @@ -15,10 +15,12 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/Transforms/IPO.h" +#include "llvm/Support/Compiler.h" using namespace llvm; namespace { - class FunctionExtractorPass : public ModulePass { + /// @brief A pass to extract specific functions and their dependencies. + class VISIBILITY_HIDDEN FunctionExtractorPass : public ModulePass { Function *Named; bool deleteFunc; bool reLink; diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index 0f868f976b..7fd110208f 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -21,6 +21,7 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" #include <set> using namespace llvm; @@ -28,7 +29,7 @@ STATISTIC(NumFunctions, "Number of functions removed"); STATISTIC(NumVariables, "Number of global variables removed"); namespace { - struct GlobalDCE : public ModulePass { + struct VISIBILITY_HIDDEN 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 d57047bc32..5be5ace315 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -24,6 +24,7 @@ #include "llvm/Pass.h" #include "llvm/Analysis/ConstantFolding.h" #include "llvm/Target/TargetData.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Debug.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/Statistic.h" @@ -45,7 +46,7 @@ STATISTIC(NumFastCallFns , "Number of functions converted to fastcc"); STATISTIC(NumCtorsEvaluated, "Number of static ctors evaluated"); namespace { - struct GlobalOpt : public ModulePass { + struct VISIBILITY_HIDDEN GlobalOpt : public ModulePass { virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<TargetData>(); } @@ -68,7 +69,7 @@ ModulePass *llvm::createGlobalOptimizerPass() { return new GlobalOpt(); } /// GlobalStatus - As we analyze each global, keep track of some information /// about it. If we find out that the address of the global is taken, none of /// this info will be accurate. -struct GlobalStatus { +struct VISIBILITY_HIDDEN GlobalStatus { /// isLoaded - True if the global is ever loaded. If the global isn't ever /// loaded it can be deleted. bool isLoaded; diff --git a/lib/Transforms/IPO/IPConstantPropagation.cpp b/lib/Transforms/IPO/IPConstantPropagation.cpp index daaa5a7121..af4fb69c82 100644 --- a/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/lib/Transforms/IPO/IPConstantPropagation.cpp @@ -22,6 +22,7 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/Support/CallSite.h" +#include "llvm/Support/Compiler.h" #include "llvm/ADT/Statistic.h" using namespace llvm; @@ -31,7 +32,7 @@ STATISTIC(NumReturnValProped, "Number of return values turned into constants"); namespace { /// IPCP - The interprocedural constant propagation pass /// - struct IPCP : public ModulePass { + struct VISIBILITY_HIDDEN IPCP : public ModulePass { bool runOnModule(Module &M); private: bool PropagateConstantsIntoArguments(Function &F); diff --git a/lib/Transforms/IPO/IndMemRemoval.cpp b/lib/Transforms/IPO/IndMemRemoval.cpp index 343fadb637..6c80aca148 100644 --- a/lib/Transforms/IPO/IndMemRemoval.cpp +++ b/lib/Transforms/IPO/IndMemRemoval.cpp @@ -23,13 +23,14 @@ #include "llvm/Type.h" #include "llvm/DerivedTypes.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Support/Compiler.h" using namespace llvm; STATISTIC(NumBounceSites, "Number of sites modified"); STATISTIC(NumBounce , "Number of bounce functions created"); namespace { - class IndMemRemPass : public ModulePass { + class VISIBILITY_HIDDEN IndMemRemPass : public ModulePass { public: virtual bool runOnModule(Module &M); }; diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp index 9ee69d92b5..64de9c395e 100644 --- a/lib/Transforms/IPO/InlineSimple.cpp +++ b/lib/Transforms/IPO/InlineSimple.cpp @@ -18,11 +18,12 @@ #include "llvm/Function.h" #include "llvm/Type.h" #include "llvm/Support/CallSite.h" +#include "llvm/Support/Compiler.h" #include "llvm/Transforms/IPO.h" using namespace llvm; namespace { - struct ArgInfo { + struct VISIBILITY_HIDDEN ArgInfo { unsigned ConstantWeight; unsigned AllocaWeight; @@ -32,7 +33,7 @@ namespace { // FunctionInfo - For each function, calculate the size of it in blocks and // instructions. - struct FunctionInfo { + struct VISIBILITY_HIDDEN FunctionInfo { // NumInsts, NumBlocks - Keep track of how large each function is, which is // used to estimate the code size cost of inlining it. unsigned NumInsts, NumBlocks; @@ -50,7 +51,7 @@ namespace { void analyzeFunction(Function *F); }; - class SimpleInliner : public Inliner { + class VISIBILITY_HIDDEN SimpleInliner : public Inliner { std::map<const Function*, FunctionInfo> CachedFunctionInfo; public: int getInlineCost(CallSite CS); diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index eebc70a47f..a1ebe956e5 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -18,6 +18,7 @@ #include "llvm/Pass.h" #include "llvm/Module.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Debug.h" #include "llvm/ADT/Statistic.h" #include <fstream> @@ -41,7 +42,7 @@ namespace { cl::desc("A list of symbol names to preserve"), cl::CommaSeparated); - class InternalizePass : public ModulePass { + class VISIBILITY_HIDDEN InternalizePass : public ModulePass { std::set<std::string> ExternalNames; bool DontInternalize; public: diff --git a/lib/Transforms/IPO/LoopExtractor.cpp b/lib/Transforms/IPO/LoopExtractor.cpp index 7169b503b2..e99fa78a7d 100644 --- a/lib/Transforms/IPO/LoopExtractor.cpp +++ b/lib/Transforms/IPO/LoopExtractor.cpp @@ -21,6 +21,7 @@ #include "llvm/Pass.h" #include "llvm/Analysis/Dominators.h" #include "llvm/Analysis/LoopInfo.h" +#include "llvm/Support/Compiler.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils/FunctionUtils.h" #include "llvm/ADT/Statistic.h" @@ -32,7 +33,7 @@ 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. - struct LoopExtractor : public FunctionPass { + struct VISIBILITY_HIDDEN LoopExtractor : public FunctionPass { unsigned NumLoops; LoopExtractor(unsigned numLoops = ~0) : NumLoops(numLoops) {} diff --git a/lib/Transforms/IPO/LowerSetJmp.cpp b/lib/Transforms/IPO/LowerSetJmp.cpp index 8941c8b7b7..fcaa4e8ac5 100644 --- a/lib/Transforms/IPO/LowerSetJmp.cpp +++ b/lib/Transforms/IPO/LowerSetJmp.cpp @@ -42,6 +42,7 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/Support/CFG.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/InstVisitor.h" #include "llvm/Transforms/Utils/Local.h" #include "llvm/ADT/DepthFirstIterator.h" @@ -58,7 +59,7 @@ STATISTIC(InvokesTransformed , "Number of invokes modified"); namespace { //===--------------------------------------------------------------------===// // LowerSetJmp pass implementation. - class LowerSetJmp : public ModulePass, + class VISIBILITY_HIDDEN LowerSetJmp : public ModulePass, public InstVisitor<LowerSetJmp> { // LLVM library functions... Constant *InitSJMap; // __llvm_sjljeh_init_setjmpmap diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index c92f428914..d6043a1df5 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -24,6 +24,7 @@ #include "llvm/Analysis/CallGraph.h" #include "llvm/ADT/Statistic.h" #include "llvm/Support/CFG.h" +#include "llvm/Support/Compiler.h" #include <set> #include <algorithm> using namespace llvm; @@ -32,7 +33,7 @@ STATISTIC(NumRemoved, "Number of invokes removed"); STATISTIC(NumUnreach, "Number of noreturn calls optimized"); namespace { - struct PruneEH : public CallGraphSCCPass { + struct VISIBILITY_HIDDEN PruneEH : public CallGraphSCCPass { /// DoesNotUnwind - This set contains all of the functions which we have /// determined cannot unwind. std::set<CallGraphNode*> DoesNotUnwind; diff --git a/lib/Transforms/IPO/RaiseAllocations.cpp b/lib/Transforms/IPO/RaiseAllocations.cpp index c5a9cbf447..b689de7083 100644 --- a/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/lib/Transforms/IPO/RaiseAllocations.cpp @@ -20,6 +20,7 @@ #include "llvm/Instructions.h" #include "llvm/Pass.h" #include "llvm/Support/CallSite.h" +#include "llvm/Support/Compiler.h" #include "llvm/ADT/Statistic.h" using namespace llvm; @@ -29,7 +30,7 @@ namespace { // RaiseAllocations - Turn %malloc and %free calls into the appropriate // instruction. // - class RaiseAllocations : public ModulePass { + class VISIBILITY_HIDDEN RaiseAllocations : public ModulePass { Function *MallocFunc; // Functions in the module we are processing Function *FreeFunc; // Initialized by doPassInitializationVirt public: diff --git a/lib/Transforms/IPO/SimplifyLibCalls.cpp b/lib/Transforms/IPO/SimplifyLibCalls.cpp index 3ace4b365f..51d70b1dac 100644 --- a/lib/Transforms/IPO/SimplifyLibCalls.cpp +++ b/lib/Transforms/IPO/SimplifyLibCalls.cpp @@ -26,6 +26,7 @@ #include "llvm/ADT/hash_map" #include "llvm/ADT/Statistic.h" #include "llvm/Config/config.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Debug.h" #include "llvm/Target/TargetData.h" #include "llvm/Transforms/IPO.h" @@ -62,7 +63,7 @@ static LibCallOptimization *OptList = 0; /// generally short-circuit actually calling the function if there's a simpler /// way (e.g. strlen(X) can be reduced to a constant if X is a constant global). /// @brief Base class for library call optimizations -class LibCallOptimization { +class VISIBILITY_HIDDEN LibCallOptimization { LibCallOptimization **Prev, *Next; const char *FunctionName; ///< Name of the library call we optimize #ifndef NDEBUG @@ -142,7 +143,7 @@ public: /// validate the call (ValidateLibraryCall). If it is validated, then /// the OptimizeCall method is also called. /// @brief A ModulePass for optimizing well-known function calls. -class SimplifyLibCalls : public ModulePass { +class VISIBILITY_HIDDEN SimplifyLibCalls : public ModulePass { public: /// We need some target data for accurate signature details that are /// target dependent. So we require target data in our AnalysisUsage. @@ -383,15 +384,16 @@ ModulePass *llvm::createSimplifyLibCallsPass() { namespace { // Forward declare utility functions. -bool getConstantStringLength(Value* V, uint64_t& len, ConstantArray** A = 0 ); -Value *CastToCStr(Value *V, Instruction &IP); +static bool getConstantStringLength(Value* V, uint64_t& len, + ConstantArray** A = 0 ); +static Value *CastToCStr(Value *V, Instruction &IP); /// This LibCallOptimization will find instances of a call to "exit" that occurs /// within the "main" function and change it to a simple "ret" instruction with /// the same value passed to the exit function. When this is done, it splits the /// basic block at the exit(3) call and deletes the call instruction. /// @brief Replace calls to exit in main with a simple return -struct ExitInMainOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN ExitInMainOptimization : public LibCallOptimization { ExitInMainOptimization() : LibCallOptimization("exit", "Number of 'exit' calls simplified") {} @@ -447,7 +449,7 @@ struct ExitInMainOptimization : public LibCallOptimization { /// of the constant string. Both of these calls are further reduced, if possible /// on subsequent passes. /// @brief Simplify the strcat library function. -struct StrCatOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrCatOptimization : public LibCallOptimization { public: /// @brief Default constructor StrCatOptimization() : LibCallOptimization("strcat", @@ -530,7 +532,7 @@ public: /// function. It optimizes out cases where the arguments are both constant /// and the result can be determined statically. /// @brief Simplify the strcmp library function. -struct StrChrOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrChrOptimization : public LibCallOptimization { public: StrChrOptimization() : LibCallOptimization("strchr", "Number of 'strchr' calls simplified") {} @@ -611,7 +613,7 @@ public: /// function. It optimizes out cases where one or both arguments are constant /// and the result can be determined statically. /// @brief Simplify the strcmp library function. -struct StrCmpOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrCmpOptimization : public LibCallOptimization { public: StrCmpOptimization() : LibCallOptimization("strcmp", "Number of 'strcmp' calls simplified") {} @@ -688,7 +690,7 @@ public: /// function. It optimizes out cases where one or both arguments are constant /// and the result can be determined statically. /// @brief Simplify the strncmp library function. -struct StrNCmpOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrNCmpOptimization : public LibCallOptimization { public: StrNCmpOptimization() : LibCallOptimization("strncmp", "Number of 'strncmp' calls simplified") {} @@ -781,7 +783,7 @@ public: /// (1) If src and dest are the same and not volatile, just return dest /// (2) If the src is a constant then we can convert to llvm.memmove /// @brief Simplify the strcpy library function. -struct StrCpyOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrCpyOptimization : public LibCallOptimization { public: StrCpyOptimization() : LibCallOptimization("strcpy", "Number of 'strcpy' calls simplified") {} @@ -859,7 +861,7 @@ public: /// function by replacing it with a constant value if the string provided to /// it is a constant array. /// @brief Simplify the strlen library function. -struct StrLenOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN StrLenOptimization : public LibCallOptimization { StrLenOptimization() : LibCallOptimization("strlen", "Number of 'strlen' calls simplified") {} @@ -947,7 +949,7 @@ static bool IsOnlyUsedInEqualsZeroComparison(Instruction *I) { /// This memcmpOptimization will simplify a call to the memcmp library /// function. -struct memcmpOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN memcmpOptimization : public LibCallOptimization { /// @brief Default Constructor memcmpOptimization() : LibCallOptimization("memcmp", "Number of 'memcmp' calls simplified") {} @@ -1052,7 +1054,7 @@ struct memcmpOptimization : public LibCallOptimization { /// bytes depending on the length of the string and the alignment. Additional /// optimizations are possible in code generation (sequence of immediate store) /// @brief Simplify the memcpy library function. -struct LLVMMemCpyMoveOptzn : public LibCallOptimization { +struct VISIBILITY_HIDDEN LLVMMemCpyMoveOptzn : public LibCallOptimization { LLVMMemCpyMoveOptzn(const char* fname, const char* desc) : LibCallOptimization(fname, desc) {} @@ -1129,7 +1131,7 @@ LLVMMemCpyMoveOptzn LLVMMemMoveOptimizer64("llvm.memmove.i64", /// This LibCallOptimization will simplify a call to the memset library /// function by expanding it out to a single store of size 0, 1, 2, 4, or 8 /// bytes depending on the length argument. -struct LLVMMemSetOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN LLVMMemSetOptimization : public LibCallOptimization { /// @brief Default Constructor LLVMMemSetOptimization(const char *Name) : LibCallOptimization(Name, "Number of 'llvm.memset' calls simplified") {} @@ -1232,7 +1234,7 @@ LLVMMemSetOptimization MemSet64Optimizer("llvm.memset.i64"); /// function. It looks for cases where the result of pow is well known and /// substitutes the appropriate value. /// @brief Simplify the pow library function. -struct PowOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN PowOptimization : public LibCallOptimization { public: /// @brief Default Constructor PowOptimization() : LibCallOptimization("pow", @@ -1293,7 +1295,7 @@ public: /// function. It looks for cases where the result of printf is not used and the /// operation can be reduced to something simpler. /// @brief Simplify the printf library function. -struct PrintfOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN PrintfOptimization : public LibCallOptimization { public: /// @brief Default Constructor PrintfOptimization() : LibCallOptimization("printf", @@ -1371,7 +1373,7 @@ public: /// function. It looks for cases where the result of fprintf is not used and the /// operation can be reduced to something simpler. /// @brief Simplify the fprintf library function. -struct FPrintFOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN FPrintFOptimization : public LibCallOptimization { public: /// @brief Default Constructor FPrintFOptimization() : LibCallOptimization("fprintf", @@ -1491,7 +1493,7 @@ public: /// function. It looks for cases where the result of sprintf is not used and the /// operation can be reduced to something simpler. /// @brief Simplify the sprintf library function. -struct SPrintFOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN SPrintFOptimization : public LibCallOptimization { public: /// @brief Default Constructor SPrintFOptimization() : LibCallOptimization("sprintf", @@ -1614,7 +1616,7 @@ public: /// function. It looks for cases where the result of fputs is not used and the /// operation can be reduced to something simpler. /// @brief Simplify the puts library function. -struct PutsOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN PutsOptimization : public LibCallOptimization { public: /// @brief Default Constructor PutsOptimization() : LibCallOptimization("fputs", @@ -1675,7 +1677,7 @@ public: /// This LibCallOptimization will simplify calls to the "isdigit" library /// function. It simply does range checks the parameter explicitly. /// @brief Simplify the isdigit library function. -struct isdigitOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN isdigitOptimization : public LibCallOptimization { public: isdigitOptimization() : LibCallOptimization("isdigit", "Number of 'isdigit' calls simplified") {} @@ -1716,7 +1718,7 @@ public: } } isdigitOptimizer; -struct isasciiOptimization : public LibCallOptimization { +struct VISIBILITY_HIDDEN isasciiOptimization : public LibCallOptimization { public: isasciiOptimization() : LibCallOptimization("isascii", "Number of 'isascii' calls simplified") {} @@ -1746,7 +1748,7 @@ public: /// function. It simply does the corresponding and operation to restrict the /// range of values to the ASCII character set (0-127). /// @brief Simp |