diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-09-11 17:42:27 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-09-11 17:42:27 +0000 |
commit | 15f387c93ef8d5c23f110143996c8b9b4a089864 (patch) | |
tree | c05dd44a175d30a5e34ed8d21ecea848a8c1f776 | |
parent | 209a8c8e35cd770d483d597c4eb703a4ee8b0003 (diff) | |
download | llvm-15f387c93ef8d5c23f110143996c8b9b4a089864.tar.gz llvm-15f387c93ef8d5c23f110143996c8b9b4a089864.tar.bz2 llvm-15f387c93ef8d5c23f110143996c8b9b4a089864.tar.xz |
Give internal classes hidden visibility.
Worth 100k on a linux/x86_64 Release+Asserts clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190534 91177308-0d34-0410-b5e6-96231b3b80d8
35 files changed, 83 insertions, 82 deletions
diff --git a/lib/AsmParser/LLLexer.h b/lib/AsmParser/LLLexer.h index 85703c766b..5dfb2be3b2 100644 --- a/lib/AsmParser/LLLexer.h +++ b/lib/AsmParser/LLLexer.h @@ -26,7 +26,7 @@ namespace llvm { class SMDiagnostic; class LLVMContext; - class LLLexer { + class LLVM_LIBRARY_VISIBILITY LLLexer { const char *CurPtr; MemoryBuffer *CurBuf; SMDiagnostic &ErrorInfo; diff --git a/lib/AsmParser/LLParser.h b/lib/AsmParser/LLParser.h index 594281e908..4af6e970de 100644 --- a/lib/AsmParser/LLParser.h +++ b/lib/AsmParser/LLParser.h @@ -42,7 +42,7 @@ namespace llvm { /// There are several cases where we have to parse the value but where the /// type can depend on later context. This may either be a numeric reference /// or a symbolic (%var) reference. This is just a discriminated union. - struct ValID { + struct LLVM_LIBRARY_VISIBILITY ValID { enum { t_LocalID, t_GlobalID, // ID in UIntVal. t_LocalName, t_GlobalName, // Name in StrVal. @@ -83,7 +83,7 @@ namespace llvm { } }; - class LLParser { + class LLVM_LIBRARY_VISIBILITY LLParser { public: typedef LLLexer::LocTy LocTy; private: diff --git a/lib/Bitcode/Reader/BitcodeReader.h b/lib/Bitcode/Reader/BitcodeReader.h index b095447675..f82f03f73e 100644 --- a/lib/Bitcode/Reader/BitcodeReader.h +++ b/lib/Bitcode/Reader/BitcodeReader.h @@ -32,7 +32,7 @@ namespace llvm { // BitcodeReaderValueList Class //===----------------------------------------------------------------------===// -class BitcodeReaderValueList { +class LLVM_LIBRARY_VISIBILITY BitcodeReaderValueList { std::vector<WeakVH> ValuePtrs; /// ResolveConstants - As we resolve forward-referenced constants, we add @@ -91,7 +91,7 @@ public: // BitcodeReaderMDValueList Class //===----------------------------------------------------------------------===// -class BitcodeReaderMDValueList { +class LLVM_LIBRARY_VISIBILITY BitcodeReaderMDValueList { std::vector<WeakVH> MDValuePtrs; LLVMContext &Context; @@ -121,7 +121,7 @@ public: void AssignValue(Value *V, unsigned Idx); }; -class BitcodeReader : public GVMaterializer { +class LLVM_LIBRARY_VISIBILITY BitcodeReader : public GVMaterializer { LLVMContext &Context; Module *TheModule; MemoryBuffer *Buffer; diff --git a/lib/Bitcode/Writer/ValueEnumerator.h b/lib/Bitcode/Writer/ValueEnumerator.h index d1ca15f45d..f208eb3407 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.h +++ b/lib/Bitcode/Writer/ValueEnumerator.h @@ -34,7 +34,7 @@ class ValueSymbolTable; class MDSymbolTable; class raw_ostream; -class ValueEnumerator { +class LLVM_LIBRARY_VISIBILITY ValueEnumerator { public: typedef std::vector<Type*> TypeList; diff --git a/lib/CodeGen/AggressiveAntiDepBreaker.h b/lib/CodeGen/AggressiveAntiDepBreaker.h index 6683630fba..49be188139 100644 --- a/lib/CodeGen/AggressiveAntiDepBreaker.h +++ b/lib/CodeGen/AggressiveAntiDepBreaker.h @@ -34,7 +34,7 @@ class RegisterClassInfo; /// Class AggressiveAntiDepState /// Contains all the state necessary for anti-dep breaking. - class AggressiveAntiDepState { + class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepState { public: /// RegisterReference - Information about a register reference /// within a liverange @@ -114,7 +114,8 @@ class RegisterClassInfo; /// Class AggressiveAntiDepBreaker - class AggressiveAntiDepBreaker : public AntiDepBreaker { + class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepBreaker + : public AntiDepBreaker { MachineFunction& MF; MachineRegisterInfo &MRI; const TargetInstrInfo *TII; diff --git a/lib/CodeGen/AllocationOrder.h b/lib/CodeGen/AllocationOrder.h index aed461a7ed..f0d35beba2 100644 --- a/lib/CodeGen/AllocationOrder.h +++ b/lib/CodeGen/AllocationOrder.h @@ -25,7 +25,7 @@ namespace llvm { class RegisterClassInfo; class VirtRegMap; -class AllocationOrder { +class LLVM_LIBRARY_VISIBILITY AllocationOrder { SmallVector<MCPhysReg, 16> Hints; ArrayRef<MCPhysReg> Order; int Pos; diff --git a/lib/CodeGen/AntiDepBreaker.h b/lib/CodeGen/AntiDepBreaker.h index df47f984d5..b6e5450e0d 100644 --- a/lib/CodeGen/AntiDepBreaker.h +++ b/lib/CodeGen/AntiDepBreaker.h @@ -28,7 +28,7 @@ namespace llvm { /// AntiDepBreaker - This class works into conjunction with the /// post-RA scheduler to rename registers to break register /// anti-dependencies. -class AntiDepBreaker { +class LLVM_LIBRARY_VISIBILITY AntiDepBreaker { public: typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > DbgValueVector; diff --git a/lib/CodeGen/AsmPrinter/DIE.h b/lib/CodeGen/AsmPrinter/DIE.h index 6eaa6ee66e..d76083a67f 100644 --- a/lib/CodeGen/AsmPrinter/DIE.h +++ b/lib/CodeGen/AsmPrinter/DIE.h @@ -30,7 +30,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEAbbrevData - Dwarf abbreviation data, describes one attribute of a /// Dwarf abbreviation. - class DIEAbbrevData { + class LLVM_LIBRARY_VISIBILITY DIEAbbrevData { /// Attribute - Dwarf attribute code. /// uint16_t Attribute; @@ -53,7 +53,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEAbbrev - Dwarf abbreviation, describes the organization of a debug /// information object. - class DIEAbbrev : public FoldingSetNode { + class LLVM_LIBRARY_VISIBILITY DIEAbbrev : public FoldingSetNode { /// Tag - Dwarf tag code. /// uint16_t Tag; @@ -107,7 +107,7 @@ namespace llvm { /// describes its organization. class DIEValue; - class DIE { + class LLVM_LIBRARY_VISIBILITY DIE { protected: /// Offset - Offset in debug info section. /// @@ -188,7 +188,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEValue - A debug information entry value. /// - class DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEValue { virtual void anchor(); public: enum { @@ -228,7 +228,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEInteger - An integer value DIE. /// - class DIEInteger : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEInteger : public DIEValue { uint64_t Integer; public: explicit DIEInteger(uint64_t I) : DIEValue(isInteger), Integer(I) {} @@ -270,7 +270,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEExpr - An expression DIE. // - class DIEExpr : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEExpr : public DIEValue { const MCExpr *Expr; public: explicit DIEExpr(const MCExpr *E) : DIEValue(isExpr), Expr(E) {} @@ -298,7 +298,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIELabel - A label DIE. // - class DIELabel : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIELabel : public DIEValue { const MCSymbol *Label; public: explicit DIELabel(const MCSymbol *L) : DIEValue(isLabel), Label(L) {} @@ -326,7 +326,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEDelta - A simple label difference DIE. /// - class DIEDelta : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEDelta : public DIEValue { const MCSymbol *LabelHi; const MCSymbol *LabelLo; public: @@ -352,7 +352,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEString - A container for string values. /// - class DIEString : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEString : public DIEValue { const DIEValue *Access; const StringRef Str; @@ -383,7 +383,7 @@ namespace llvm { /// DIEEntry - A pointer to another debug information entry. An instance of /// this class can also be used as a proxy for a debug information entry not /// yet defined (ie. types.) - class DIEEntry : public DIEValue { + class LLVM_LIBRARY_VISIBILITY DIEEntry : public DIEValue { DIE *const Entry; public: explicit DIEEntry(DIE *E) : DIEValue(isEntry), Entry(E) { @@ -417,7 +417,7 @@ namespace llvm { //===--------------------------------------------------------------------===// /// DIEBlock - A block of values. Primarily used for location expressions. // - class DIEBlock : public DIEValue, public DIE { + class LLVM_LIBRARY_VISIBILITY DIEBlock : public DIEValue, public DIE { unsigned Size; // Size in bytes excluding size header. public: DIEBlock() diff --git a/lib/CodeGen/AsmPrinter/DIEHash.h b/lib/CodeGen/AsmPrinter/DIEHash.h index b792aeab6c..d0bf34c492 100644 --- a/lib/CodeGen/AsmPrinter/DIEHash.h +++ b/lib/CodeGen/AsmPrinter/DIEHash.h @@ -19,7 +19,7 @@ class CompileUnit; /// \brief An object containing the capability of hashing and adding hash /// attributes onto a DIE. -class DIEHash { +class LLVM_LIBRARY_VISIBILITY DIEHash { // The entry for a particular attribute. struct AttrEntry { const DIEValue *Val; diff --git a/lib/CodeGen/AsmPrinter/DwarfAccelTable.h b/lib/CodeGen/AsmPrinter/DwarfAccelTable.h index 7627313d28..1ea0bfb7a0 100644 --- a/lib/CodeGen/AsmPrinter/DwarfAccelTable.h +++ b/lib/CodeGen/AsmPrinter/DwarfAccelTable.h @@ -65,7 +65,7 @@ class AsmPrinter; class DIE; class DwarfUnits; -class DwarfAccelTable { +class LLVM_LIBRARY_VISIBILITY DwarfAccelTable { static uint32_t HashDJB(StringRef Str) { uint32_t h = 5381; diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h index ecffb25702..2a8b648bd6 100644 --- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h +++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h @@ -34,7 +34,7 @@ class DbgVariable; //===----------------------------------------------------------------------===// /// CompileUnit - This dwarf writer support class manages information associated /// with a source file. -class CompileUnit { +class LLVM_LIBRARY_VISIBILITY CompileUnit { /// UniqueID - a numeric ID unique among all CUs in the module /// unsigned UniqueID; diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index c702180dc3..43d8141d1f 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -44,7 +44,7 @@ class DIEEntry; //===----------------------------------------------------------------------===// /// \brief This class is used to record source line correspondence. -class SrcLineInfo { +class LLVM_LIBRARY_VISIBILITY SrcLineInfo { unsigned Line; // Source line number. unsigned Column; // Source column. unsigned SourceID; // Source ID number. @@ -62,7 +62,7 @@ public: /// \brief This struct describes location entries emitted in the .debug_loc /// section. -class DotDebugLocEntry { +class LLVM_LIBRARY_VISIBILITY DotDebugLocEntry { // Begin and end symbols for the address range that this location is valid. const MCSymbol *Begin; const MCSymbol *End; @@ -143,7 +143,7 @@ public: //===----------------------------------------------------------------------===// /// \brief This class is used to track local variable information. -class DbgVariable { +class LLVM_LIBRARY_VISIBILITY DbgVariable { DIVariable Var; // Variable Descriptor. DIE *TheDIE; // Variable DIE. unsigned DotDebugLocOffset; // Offset in DotDebugLocEntries. @@ -212,7 +212,7 @@ public: /// \brief Collects and handles information specific to a particular /// collection of units. -class DwarfUnits { +class LLVM_LIBRARY_VISIBILITY DwarfUnits { // Target of Dwarf emission, used for sizing of abbreviations. AsmPrinter *Asm; @@ -301,7 +301,7 @@ public: }; /// \brief Collects and handles dwarf debug information. -class DwarfDebug { +class LLVM_LIBRARY_VISIBILITY DwarfDebug { // Target of Dwarf emission. AsmPrinter *Asm; diff --git a/lib/CodeGen/AsmPrinter/DwarfException.h b/lib/CodeGen/AsmPrinter/DwarfException.h index 49a85d81b4..fe86184dc3 100644 --- a/lib/CodeGen/AsmPrinter/DwarfException.h +++ b/lib/CodeGen/AsmPrinter/DwarfException.h @@ -34,7 +34,7 @@ class AsmPrinter; //===----------------------------------------------------------------------===// /// DwarfException - Emits Dwarf exception handling directives. /// -class DwarfException { +class LLVM_LIBRARY_VISIBILITY DwarfException { protected: /// Asm - Target of Dwarf emission. AsmPrinter *Asm; @@ -141,7 +141,7 @@ public: virtual void EndFunction(); }; -class DwarfCFIException : public DwarfException { +class LLVM_LIBRARY_VISIBILITY DwarfCFIException : public DwarfException { /// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality /// should be emitted. bool shouldEmitPersonality; @@ -175,7 +175,7 @@ public: virtual void EndFunction(); }; -class ARMException : public DwarfException { +class LLVM_LIBRARY_VISIBILITY ARMException : public DwarfException { void EmitTypeInfos(unsigned TTypeEncoding); public: //===--------------------------------------------------------------------===// @@ -196,7 +196,7 @@ public: virtual void EndFunction(); }; -class Win64Exception : public DwarfException { +class LLVM_LIBRARY_VISIBILITY Win64Exception : public DwarfException { /// shouldEmitPersonality - Per-function flag to indicate if personality /// info should be emitted. bool shouldEmitPersonality; diff --git a/lib/CodeGen/BranchFolding.h b/lib/CodeGen/BranchFolding.h index 0d15ed7e79..9ca0f29675 100644 --- a/lib/CodeGen/BranchFolding.h +++ b/lib/CodeGen/BranchFolding.h @@ -21,7 +21,7 @@ namespace llvm { class TargetInstrInfo; class TargetRegisterInfo; - class BranchFolder { + class LLVM_LIBRARY_VISIBILITY BranchFolder { public: explicit BranchFolder(bool defaultEnableTailMerge, bool CommonHoist); diff --git a/lib/CodeGen/CriticalAntiDepBreaker.h b/lib/CodeGen/CriticalAntiDepBreaker.h index 565d20bac0..ef4059e7af 100644 --- a/lib/CodeGen/CriticalAntiDepBreaker.h +++ b/lib/CodeGen/CriticalAntiDepBreaker.h @@ -31,7 +31,7 @@ class RegisterClassInfo; class TargetInstrInfo; class TargetRegisterInfo; - class CriticalAntiDepBreaker : public AntiDepBreaker { + class LLVM_LIBRARY_VISIBILITY CriticalAntiDepBreaker : public AntiDepBreaker { MachineFunction& MF; MachineRegisterInfo &MRI; const TargetInstrInfo *TII; diff --git a/lib/CodeGen/InterferenceCache.h b/lib/CodeGen/InterferenceCache.h index c02fb9a1ee..a7fb98057a 100644 --- a/lib/CodeGen/InterferenceCache.h +++ b/lib/CodeGen/InterferenceCache.h @@ -21,7 +21,7 @@ namespace llvm { class LiveIntervals; -class InterferenceCache { +class LLVM_LIBRARY_VISIBILITY InterferenceCache { const TargetRegisterInfo *TRI; LiveIntervalUnion *LIUArray; MachineFunction *MF; diff --git a/lib/CodeGen/LiveDebugVariables.h b/lib/CodeGen/LiveDebugVariables.h index 58a3f0f6ff..1d449fd10b 100644 --- a/lib/CodeGen/LiveDebugVariables.h +++ b/lib/CodeGen/LiveDebugVariables.h @@ -30,7 +30,7 @@ class LiveInterval; class LiveIntervals; class VirtRegMap; -class LiveDebugVariables : public MachineFunctionPass { +class LLVM_LIBRARY_VISIBILITY LiveDebugVariables : public MachineFunctionPass { void *pImpl; public: static char ID; // Pass identification, replacement for typeid diff --git a/lib/CodeGen/LiveRangeCalc.h b/lib/CodeGen/LiveRangeCalc.h index 69c7f765e6..7a371c16d3 100644 --- a/lib/CodeGen/LiveRangeCalc.h +++ b/lib/CodeGen/LiveRangeCalc.h @@ -33,7 +33,7 @@ class MachineDominatorTree; template <class NodeT> class DomTreeNodeBase; typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode; -class LiveRangeCalc { +class LLVM_LIBRARY_VISIBILITY LiveRangeCalc { const MachineFunction *MF; const MachineRegisterInfo *MRI; SlotIndexes *Indexes; diff --git a/lib/CodeGen/PrologEpilogInserter.h b/lib/CodeGen/PrologEpilogInserter.h index 50f4daf733..c18c0e8b88 100644 --- a/lib/CodeGen/PrologEpilogInserter.h +++ b/lib/CodeGen/PrologEpilogInserter.h @@ -33,7 +33,7 @@ namespace llvm { class RegScavenger; class MachineBasicBlock; - class PEI : public MachineFunctionPass { + class LLVM_LIBRARY_VISIBILITY PEI : public MachineFunctionPass { public: static char ID; PEI() : MachineFunctionPass(ID) { diff --git a/lib/CodeGen/RegAllocBase.h b/lib/CodeGen/RegAllocBase.h index 9c0029837d..597b1fcb58 100644 --- a/lib/CodeGen/RegAllocBase.h +++ b/lib/CodeGen/RegAllocBase.h @@ -56,7 +56,7 @@ class Spiller; /// Register allocators must override the selectOrSplit() method to implement /// live range splitting. They must also override enqueue/dequeue to provide an /// assignment order. -class RegAllocBase { +class LLVM_LIBRARY_VISIBILITY RegAllocBase { protected: const TargetRegisterInfo *TRI; MachineRegisterInfo *MRI; diff --git a/lib/CodeGen/SelectionDAG/InstrEmitter.h b/lib/CodeGen/SelectionDAG/InstrEmitter.h index 920dda8820..1126707c3f 100644 --- a/lib/CodeGen/SelectionDAG/InstrEmitter.h +++ b/lib/CodeGen/SelectionDAG/InstrEmitter.h @@ -26,7 +26,7 @@ class MachineInstrBuilder; class MCInstrDesc; class SDDbgValue; -class InstrEmitter { +class LLVM_LIBRARY_VISIBILITY InstrEmitter { MachineFunction *MF; MachineRegisterInfo *MRI; const TargetMachine *TM; diff --git a/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h b/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h index 4af7172847..a08706a60c 100644 --- a/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h +++ b/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h @@ -27,7 +27,7 @@ class Value; /// SDDbgValue - Holds the information from a dbg_value node through SDISel. /// We do not use SDValue here to avoid including its header. -class SDDbgValue { +class LLVM_LIBRARY_VISIBILITY SDDbgValue { public: enum DbgValueKind { SDNODE = 0, // value is the result of an expression diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h index 2ff37e0a15..60663c0ba0 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h @@ -33,7 +33,7 @@ namespace llvm { /// edges. Physical register dependence information is not carried in /// the DAG and must be handled explicitly by schedulers. /// - class ScheduleDAGSDNodes : public ScheduleDAG { + class LLVM_LIBRARY_VISIBILITY ScheduleDAGSDNodes : public ScheduleDAG { public: MachineBasicBlock *BB; SelectionDAG *DAG; // DAG of the current basic block diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h index 6463ecaca5..ec640bca52 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h @@ -79,7 +79,7 @@ class ZExtInst; /// SelectionDAGBuilder - This is the common target-independent lowering /// implementation that is parameterized by a TargetLowering object. /// -class SelectionDAGBuilder { +class LLVM_LIBRARY_VISIBILITY SelectionDAGBuilder { /// CurInst - The current instruction being visited const Instruction *CurInst; diff --git a/lib/CodeGen/SpillPlacement.h b/lib/CodeGen/SpillPlacement.h index 105516bb62..0a90398a4c 100644 --- a/lib/CodeGen/SpillPlacement.h +++ b/lib/CodeGen/SpillPlacement.h @@ -39,7 +39,7 @@ class EdgeBundles; class MachineBasicBlock; class MachineLoopInfo; -class SpillPlacement : public MachineFunctionPass { +class LLVM_LIBRARY_VISIBILITY SpillPlacement : public MachineFunctionPass { struct Node; const MachineFunction *MF; const EdgeBundles *bundles; diff --git a/lib/CodeGen/SplitKit.h b/lib/CodeGen/SplitKit.h index f029c73d12..e0a9c3176a 100644 --- a/lib/CodeGen/SplitKit.h +++ b/lib/CodeGen/SplitKit.h @@ -39,7 +39,7 @@ class raw_ostream; /// SplitAnalysis - Analyze a LiveInterval, looking for live range splitting /// opportunities. -class SplitAnalysis { +class LLVM_LIBRARY_VISIBILITY SplitAnalysis { public: const MachineFunction &MF; const VirtRegMap &VRM; @@ -208,7 +208,7 @@ public: /// - Finish the current interval with closeIntv and repeat from 2. /// - Rewrite instructions with finish(). /// -class SplitEditor { +class LLVM_LIBRARY_VISIBILITY SplitEditor { SplitAnalysis &SA; LiveIntervals &LIS; VirtRegMap &VRM; diff --git a/lib/IR/AsmWriter.h b/lib/IR/AsmWriter.h index 8f4a37777e..9e8355719a 100644 --- a/lib/IR/AsmWriter.h +++ b/lib/IR/AsmWriter.h @@ -39,7 +39,7 @@ SlotTracker *createSlotTracker(const Module *M); // TypePrinting Class: Type printing machinery //===----------------------------------------------------------------------===// -class TypePrinting { +class LLVM_LIBRARY_VISIBILITY TypePrinting { TypePrinting(const TypePrinting &) LLVM_DELETED_FUNCTION; void operator=(const TypePrinting&) LLVM_DELETED_FUNCTION; public: @@ -61,7 +61,7 @@ public: void printStructBody(StructType *Ty, raw_ostream &OS); }; -class AssemblyWriter { +class LLVM_LIBRARY_VISIBILITY AssemblyWriter { protected: formatted_raw_ostream &Out; const Module *TheModule; diff --git a/lib/IR/AttributeImpl.h b/lib/IR/AttributeImpl.h index 9da3f9659e..ac7379b00e 100644 --- a/lib/IR/AttributeImpl.h +++ b/lib/IR/AttributeImpl.h @@ -29,7 +29,7 @@ class LLVMContext; /// \class /// \brief This class represents a single, uniqued attribute. That attribute /// could be a single enum, a tuple, or a string. -class AttributeImpl : public FoldingSetNode { +class LLVM_LIBRARY_VISIBILITY AttributeImpl : public FoldingSetNode { unsigned char KindID; ///< Holds the AttrEntryKind of the attribute // AttributesImpl is uniqued, these should not be publicly available. @@ -93,7 +93,7 @@ public: /// represented by Attribute::AttrKind; alignment attribute entries; and string /// attribute enties, which are for target-dependent attributes. -class EnumAttributeImpl : public AttributeImpl { +class LLVM_LIBRARY_VISIBILITY EnumAttributeImpl : public AttributeImpl { Attribute::AttrKind Kind; protected: @@ -107,7 +107,7 @@ public: Attribute::AttrKind getEnumKind() const { return Kind; } }; -class AlignAttributeImpl : public EnumAttributeImpl { +class LLVM_LIBRARY_VISIBILITY AlignAttributeImpl : public EnumAttributeImpl { unsigned Align; public: @@ -121,7 +121,7 @@ public: unsigned getAlignment() const { return Align; } }; -class StringAttributeImpl : public AttributeImpl { +class LLVM_LIBRARY_VISIBILITY StringAttributeImpl : public AttributeImpl { std::string Kind; std::string Val; @@ -137,7 +137,7 @@ public: /// \class /// \brief This class represents a group of attributes that apply to one /// element: function, return type, or parameter. -class AttributeSetNode : public FoldingSetNode { +class LLVM_LIBRARY_VISIBILITY AttributeSetNode : public FoldingSetNode { unsigned NumAttrs; ///< Number of attributes in this node. AttributeSetNode(ArrayRef<Attribute> Attrs) : NumAttrs(Attrs.size()) { @@ -180,7 +180,7 @@ public: /// \class /// \brief This class represents a set of attributes that apply to the function, /// return type, and parameters. -class AttributeSetImpl : public FoldingSetNode { +class LLVM_LIBRARY_VISIBILITY AttributeSetImpl : public FoldingSetNode { friend class AttributeSet; LLVMContext &Context; diff --git a/lib/IR/ConstantsContext.h b/lib/IR/ConstantsContext.h index 32bed95e21..b4f0a53210 100644 --- a/lib/IR/ConstantsContext.h +++ b/lib/IR/ConstantsContext.h @@ -31,7 +31,7 @@ struct ConstantTraits; /// UnaryConstantExpr - This class is private to Constants.cpp, and is used /// behind the scenes to implement unary constant exprs. -class UnaryConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY UnaryConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -48,7 +48,7 @@ public: /// BinaryConstantExpr - This class is private to Constants.cpp, and is used /// behind the scenes to implement binary constant exprs. -class BinaryConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY BinaryConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -69,7 +69,7 @@ public: /// SelectConstantExpr - This class is private to Constants.cpp, and is used /// behind the scenes to implement select constant exprs. -class SelectConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY SelectConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -90,7 +90,7 @@ public: /// ExtractElementConstantExpr - This class is private to /// Constants.cpp, and is used behind the scenes to implement /// extractelement constant exprs. -class ExtractElementConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY ExtractElementConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -111,7 +111,7 @@ public: /// InsertElementConstantExpr - This class is private to /// Constants.cpp, and is used behind the scenes to implement /// insertelement constant exprs. -class InsertElementConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY InsertElementConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -133,7 +133,7 @@ public: /// ShuffleVectorConstantExpr - This class is private to /// Constants.cpp, and is used behind the scenes to implement /// shufflevector constant exprs. -class ShuffleVectorConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY ShuffleVectorConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -158,7 +158,7 @@ public: /// ExtractValueConstantExpr - This class is private to /// Constants.cpp, and is used behind the scenes to implement /// extractvalue constant exprs. -class ExtractValueConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY ExtractValueConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -184,7 +184,7 @@ public: /// InsertValueConstantExpr - This class is private to /// Constants.cpp, and is used behind the scenes to implement /// insertvalue constant exprs. -class InsertValueConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY InsertValueConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -211,7 +211,7 @@ public: /// GetElementPtrConstantExpr - This class is private to Constants.cpp, and is /// used behind the scenes to implement getelementpr constant exprs. -class GetElementPtrConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY GetElementPtrConstantExpr : public ConstantExpr { virtual void anchor(); GetElementPtrConstantExpr(Constant *C, ArrayRef<Constant*> IdxList, Type *DestTy); @@ -232,7 +232,7 @@ public: // CompareConstantExpr - This class is private to Constants.cpp, and is used // behind the scenes to implement ICmp and FCmp constant expressions. This is // needed in order to store the predicate value for these instructions. -class CompareConstantExpr : public ConstantExpr { +class LLVM_LIBRARY_VISIBILITY CompareConstantExpr : public ConstantExpr { virtual void anchor(); void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; public: @@ -313,7 +313,7 @@ struct OperandTraits<CompareConstantExpr> : }; DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value) -struct ExprMapKeyType { +struct LLVM_LIBRARY_VISIBILITY ExprMapKeyType { ExprMapKeyType(unsigned opc, ArrayRef<Constant*> ops, unsigned short flags = 0, @@ -349,7 +349,7 @@ struct ExprMapKeyType { } }; -struct InlineAsmKeyType { +struct LLVM_LIBRARY_VISIBILITY InlineAsmKeyType { InlineAsmKeyType(StringRef AsmString, StringRef Constraints, bool hasSideEffects, bool isAlignStack, InlineAsm::AsmDialect asmDialect) @@ -512,7 +512,7 @@ struct ConstantKeyData<InlineAsm> { template<class ValType, class ValRefType, class TypeClass, class ConstantClass, bool HasLargeKey = false /*true for arrays and structs*/ > -class ConstantUniqueMap { +class LLVM_LIBRARY_VISIBILITY ConstantUniqueMap { public: typedef std::pair<TypeClass*, ValType> MapKey; typedef std::map<MapKey, ConstantClass *> MapTy; @@ -648,7 +648,7 @@ public: // Unique map for aggregate constants template<class TypeClass, class ConstantClass> -class ConstantAggrUniqueMap { +class LLVM_LIBRARY_VISIBILITY ConstantAggrUniqueMap { public: typedef ArrayRef<Constant*> Operands; typedef std::pair<TypeClass*, Operands> LookupKey; diff --git a/lib/IR/LLVMContextImpl.h b/lib/IR/LLVMContextImpl.h index 0c659b81b7..d56616676c 100644 --- a/lib/IR/LLVMContextImpl.h +++ b/lib/IR/LLVMContextImpl.h @@ -41,7 +41,7 @@ class LLVMContext; class Type; class Value; -struct DenseMapAPIntKeyInfo { +struct LLVM_LIBRARY_VISIBILITY DenseMapAPIntKeyInfo { struct KeyTy { APInt val; Type* type; @@ -66,7 +66,7 @@ struct DenseMapAPIntKeyInfo { } }; -struct DenseMapAPFloatKeyInfo { +struct LLVM_LIBRARY_VISIBILITY DenseMapAPFloatKeyInfo { struct KeyTy { APFloat val; KeyTy(const APFloat& V) : val(V){} @@ -94,7 +94,7 @@ struct DenseMapAPFloatKeyInfo { } }; -struct AnonStructTypeKeyInfo { +struct LLVM_LIBRARY_VISIBILITY AnonStructTypeKeyInfo { struct KeyTy { ArrayRef<Type*> ETypes; bool isPacked; @@ -138,7 +138,7 @@ struct AnonStructTypeKeyInfo { } }; -struct FunctionTypeKeyInfo { +struct LLVM_LIBRARY_VISIBILITY FunctionTypeKeyInfo { struct KeyTy { const Type *ReturnType; ArrayRef<Type*> Params; @@ -209,7 +209,7 @@ template<> struct FoldingSetTrait<MDNode> : DefaultFoldingSetTrait<MDNode> { /// DebugRecVH - This is a CallbackVH used to keep the Scope -> index maps /// up to date as MDNodes mutate. This class is implemented in DebugLoc.cpp. -class DebugRecVH : public CallbackVH { +class LLVM_LIBRARY_VISIBILITY DebugRecVH : public CallbackVH { /// Ctx - This is the LLVM Context being referenced. LLVMContextImpl *Ctx; @@ -230,7 +230,7 @@ public: virtual void allUsesReplacedWith(Value *VNew); }; -class LLVMContextImpl { +class LLVM_LIBRARY_VISIBILITY LLVMContextImpl { public: /// OwnedModules - The set of modules instantiated in this context, and which /// will be automatically deleted if this context is deleted. diff --git a/lib/IR/LeaksContext.h b/lib/IR/LeaksContext.h index 5038dc9d6d..78cd695ecd 100644 --- a/lib/IR/LeaksContext.h +++ b/lib/IR/LeaksContext.h @@ -28,7 +28,7 @@ struct PrinterTrait<Value> { }; template <typename T> -struct LeakDetectorImpl { +struct LLVM_LIBRARY_VISIBILITY LeakDetectorImpl { explicit LeakDetectorImpl(const char* const name = "") : Cache(0), Name(name) { } diff --git a/lib/Transforms/Instrumentation/DebugIR.h b/lib/Transforms/Instrumentation/DebugIR.h index 13774cf174..06fea48157 100644 --- a/lib/Transforms/Instrumentation/DebugIR.h +++ b/lib/Transforms/Instrumentation/DebugIR.h @@ -21,7 +21,7 @@ namespace llvm { -class DebugIR : public llvm::ModulePass { +class LLVM_LIBRARY_VISIBILITY DebugIR : public llvm::ModulePass { /// If true, write a source file to disk. bool WriteSourceToDisk; diff --git a/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h b/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h index 4eac39dedd..43554b63ec 100644 --- a/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h +++ b/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h @@ -29,7 +29,7 @@ namespace objcarc { /// Declarations for ObjC runtime functions and constants. These are initialized /// lazily to avoid cluttering up the Module with unused declarations. -class ARCRuntimeEntryPoints { +class LLVM_LIBRARY_VISIBILITY ARCRuntimeEntryPoints { public: enum EntryPointType { EPT_AutoreleaseRV, diff --git a/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h b/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h index 41ccfe28ce..646ed55e8e 100644 --- a/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h +++ b/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h @@ -35,8 +35,8 @@ namespace objcarc { /// TODO: This class could be generalized to know about other ObjC-specific /// tricks. Such as knowing that ivars in the non-fragile ABI are non-aliasing /// even though their offsets are dynamic. - class ObjCARCAliasAnalysis : public ImmutablePass, - public AliasAnalysis { + class LLVM_LIBRARY_VISIBILITY ObjCARCAliasAnalysis : public ImmutablePass, + public AliasAnalysis { public: static char ID; // Class identification, replacement for typeinfo ObjCARCAliasAnalysis() : ImmutablePass(ID) { diff --git a/lib/Transforms/ObjCARC/ProvenanceAnalysis.h b/lib/Transforms/ObjCARC/ProvenanceAnalysis.h index a13fb9e9b0..db96cf56d5 100644 --- a/lib/Transforms/ObjCARC/ProvenanceAnalysis.h +++ b/lib/Transforms/ObjCARC/ProvenanceAnalysis.h @@ -46,7 +46,7 @@ namespace objcarc { /// an ``independent provenance source'' of a pointer to determine whether or /// not two pointers have the same provenance source and thus could /// potentially be related. -class ProvenanceAnalysis { +class LLVM_LIBRARY_VISIBILITY ProvenanceAnalysis { AliasAnalysis *AA; typedef std::pair<const Value *, const Value *> ValuePairTy; |