Use hidden visibility to make symbols in an anonymous namespace get

dropped.  This shrinks libllvmgcc.dylib another 67K


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28975 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-06-28 23:17:24 +00:00
parent 9ef7e06cce
commit 9525528a7d
16 changed files with 39 additions and 23 deletions

View File

@ -23,6 +23,7 @@
#include "llvm/Pass.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/Support/Visibility.h"
#include <algorithm>
using namespace llvm;
@ -32,7 +33,7 @@ namespace {
/// implementations, in that it does not chain to a previous analysis. As
/// such it doesn't follow many of the rules that other alias analyses must.
///
struct NoAA : public ImmutablePass, public AliasAnalysis {
struct VISIBILITY_HIDDEN NoAA : public ImmutablePass, public AliasAnalysis {
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<TargetData>();
}
@ -84,7 +85,7 @@ namespace {
/// BasicAliasAnalysis - This is the default alias analysis implementation.
/// Because it doesn't chain to a previous alias analysis (like -no-aa), it
/// derives from the NoAA class.
struct BasicAliasAnalysis : public NoAA {
struct VISIBILITY_HIDDEN BasicAliasAnalysis : public NoAA {
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);

View File

@ -69,9 +69,10 @@
#include "llvm/Assembly/Writer.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ConstantRange.h"
#include "llvm/Support/InstIterator.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/Statistic.h"
#include <cmath>
#include <iostream>
@ -393,7 +394,7 @@ namespace {
/// SCEVComplexityCompare - Return true if the complexity of the LHS is less
/// than the complexity of the RHS. This comparator is used to canonicalize
/// expressions.
struct SCEVComplexityCompare {
struct VISIBILITY_HIDDEN SCEVComplexityCompare {
bool operator()(SCEV *LHS, SCEV *RHS) {
return LHS->getSCEVType() < RHS->getSCEVType();
}
@ -1062,7 +1063,7 @@ SCEVHandle SCEVUnknown::get(Value *V) {
/// evolution code.
///
namespace {
struct ScalarEvolutionsImpl {
struct VISIBILITY_HIDDEN ScalarEvolutionsImpl {
/// F - The function we are analyzing.
///
Function &F;

View File

@ -23,6 +23,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/Visibility.h"
#include <set>
#include <algorithm>
using namespace llvm;
@ -31,7 +32,7 @@ namespace {
Statistic<> NumAtomic("phielim", "Number of atomic phis lowered");
Statistic<> NumSimple("phielim", "Number of simple phis lowered");
struct PNE : public MachineFunctionPass {
struct VISIBILITY_HIDDEN PNE : public MachineFunctionPass {
bool runOnMachineFunction(MachineFunction &Fn) {
bool Changed = false;

View File

@ -23,6 +23,7 @@
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Statistic.h"
#include <algorithm>
@ -34,7 +35,7 @@ namespace {
Statistic<> NumLoads ("ra-local", "Number of loads added");
Statistic<> NumFolded("ra-local", "Number of loads/stores folded into "
"instructions");
class RA : public MachineFunctionPass {
class VISIBILITY_HIDDEN RA : public MachineFunctionPass {
const TargetMachine *TM;
MachineFunction *MF;
const MRegisterInfo *RegInfo;

View File

@ -430,7 +430,8 @@ namespace {
namespace {
template<class SF>
class RegReductionPriorityQueue : public SchedulingPriorityQueue {
class VISIBILITY_HIDDEN RegReductionPriorityQueue
: public SchedulingPriorityQueue {
std::priority_queue<SUnit*, std::vector<SUnit*>, SF> Queue;
public:
@ -463,7 +464,8 @@ namespace {
};
template<class SF>
class BURegReductionPriorityQueue : public RegReductionPriorityQueue<SF> {
class VISIBILITY_HIDDEN BURegReductionPriorityQueue
: public RegReductionPriorityQueue<SF> {
// SUnits - The SUnits for the current graph.
const std::vector<SUnit> *SUnits;

View File

@ -42,6 +42,7 @@
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include <map>
#include <set>
#include <iostream>
@ -101,7 +102,7 @@ namespace {
/// particular value is assigned and the type information about the value.
/// This is needed because values can be promoted into larger registers and
/// expanded into multiple smaller registers than the value.
struct RegsForValue {
struct VISIBILITY_HIDDEN RegsForValue {
/// Regs - This list hold the register (for legal and promoted values)
/// or register set (for expanded values) that the value should be assigned
/// to.

View File

@ -27,11 +27,12 @@
#include "llvm/Pass.h"
#include "llvm/Type.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/DepthFirstIterator.h"
using namespace llvm;
namespace {
class UnreachableBlockElim : public FunctionPass {
class VISIBILITY_HIDDEN UnreachableBlockElim : public FunctionPass {
virtual bool runOnFunction(Function &F);
};
RegisterOpt<UnreachableBlockElim>

View File

@ -241,7 +241,7 @@ namespace {
/// DarwinDwarfWriter - Dwarf debug info writer customized for Darwin/Mac OS X
///
struct DarwinDwarfWriter : public DwarfWriter {
struct VISIBILITY_HIDDEN DarwinDwarfWriter : public DwarfWriter {
// Ctor.
DarwinDwarfWriter(std::ostream &o, AsmPrinter *ap)
: DwarfWriter(o, ap)
@ -265,7 +265,7 @@ namespace {
/// DarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac OS
/// X
struct DarwinAsmPrinter : public PPCAsmPrinter {
struct VISIBILITY_HIDDEN DarwinAsmPrinter : public PPCAsmPrinter {
DarwinDwarfWriter DW;
@ -309,7 +309,7 @@ namespace {
/// AIXAsmPrinter - PowerPC assembly printer, customized for AIX
///
struct AIXAsmPrinter : public PPCAsmPrinter {
struct VISIBILITY_HIDDEN AIXAsmPrinter : public PPCAsmPrinter {
/// Map for labels corresponding to global variables
///
std::map<const GlobalVariable*,std::string> GVToLabelMap;

View File

@ -19,11 +19,12 @@
#include "PPCInstrBuilder.h"
#include "PPCInstrInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/Support/Visibility.h"
#include <map>
using namespace llvm;
namespace {
struct PPCBSel : public MachineFunctionPass {
struct VISIBILITY_HIDDEN PPCBSel : public MachineFunctionPass {
// OffsetMap - Mapping between BB and byte offset from start of function
std::map<MachineBasicBlock*, unsigned> OffsetMap;

View File

@ -22,12 +22,13 @@
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/Target/TargetOptions.h"
#include <iostream>
using namespace llvm;
namespace {
class PPCCodeEmitter : public MachineFunctionPass {
class VISIBILITY_HIDDEN PPCCodeEmitter : public MachineFunctionPass {
TargetMachine &TM;
MachineCodeEmitter &MCE;

View File

@ -31,6 +31,7 @@
#include "llvm/Target/TargetData.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/Target/TargetLowering.h"
#include <algorithm>
#include <iostream>
@ -104,7 +105,7 @@ namespace {
}
};
class LoopStrengthReduce : public FunctionPass {
class VISIBILITY_HIDDEN LoopStrengthReduce : public FunctionPass {
LoopInfo *LI;
ETForest *EF;
ScalarEvolution *SE;

View File

@ -28,9 +28,10 @@
#include "llvm/Analysis/Dominators.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Transforms/Utils/PromoteMemToReg.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringExtras.h"
#include <iostream>
@ -42,7 +43,7 @@ namespace {
Statistic<> NumConverted("scalarrepl",
"Number of aggregates converted to scalar");
struct SROA : public FunctionPass {
struct VISIBILITY_HIDDEN SROA : public FunctionPass {
bool runOnFunction(Function &F);
bool performScalarRepl(Function &F);

View File

@ -24,13 +24,14 @@
#include "llvm/Instructions.h"
#include "llvm/Type.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/Statistic.h"
using namespace llvm;
namespace {
Statistic<> NumBroken("break-crit-edges", "Number of blocks inserted");
struct BreakCriticalEdges : public FunctionPass {
struct VISIBILITY_HIDDEN BreakCriticalEdges : public FunctionPass {
virtual bool runOnFunction(Function &F);
virtual void getAnalysisUsage(AnalysisUsage &AU) const {

View File

@ -41,6 +41,7 @@
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/Visibility.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
@ -53,7 +54,7 @@ namespace {
Statistic<>
NumNested("loopsimplify", "Number of nested loops split out");
struct LoopSimplify : public FunctionPass {
struct VISIBILITY_HIDDEN LoopSimplify : public FunctionPass {
// AA - If we have an alias analysis object to update, this is it, otherwise
// this is null.
AliasAnalysis *AA;

View File

@ -21,6 +21,7 @@
#include "llvm/Pass.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Target/TargetData.h"
#include "llvm/Support/Visibility.h"
using namespace llvm;
namespace {
@ -29,7 +30,7 @@ namespace {
/// LowerAllocations - Turn malloc and free instructions into %malloc and
/// %free calls.
///
class LowerAllocations : public BasicBlockPass {
class VISIBILITY_HIDDEN LowerAllocations : public BasicBlockPass {
Function *MallocFunc; // Functions in the module we are processing
Function *FreeFunc; // Initialized by doInitialization
bool LowerMallocArgToInteger;

View File

@ -26,6 +26,7 @@
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/CFG.h"
#include "llvm/Support/StableBasicBlockNumbering.h"
#include "llvm/Support/Visibility.h"
#include <algorithm>
using namespace llvm;
@ -52,7 +53,7 @@ bool llvm::isAllocaPromotable(const AllocaInst *AI, const TargetData &TD) {
}
namespace {
struct PromoteMem2Reg {
struct VISIBILITY_HIDDEN PromoteMem2Reg {
/// Allocas - The alloca instructions being promoted.
///
std::vector<AllocaInst*> Allocas;