From 15f387c93ef8d5c23f110143996c8b9b4a089864 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 11 Sep 2013 17:42:27 +0000 Subject: [PATCH] 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 --- lib/AsmParser/LLLexer.h | 2 +- lib/AsmParser/LLParser.h | 4 +-- lib/Bitcode/Reader/BitcodeReader.h | 6 ++-- lib/Bitcode/Writer/ValueEnumerator.h | 2 +- lib/CodeGen/AggressiveAntiDepBreaker.h | 5 ++-- lib/CodeGen/AllocationOrder.h | 2 +- lib/CodeGen/AntiDepBreaker.h | 2 +- lib/CodeGen/AsmPrinter/DIE.h | 22 +++++++-------- lib/CodeGen/AsmPrinter/DIEHash.h | 2 +- lib/CodeGen/AsmPrinter/DwarfAccelTable.h | 2 +- lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 2 +- lib/CodeGen/AsmPrinter/DwarfDebug.h | 10 +++---- lib/CodeGen/AsmPrinter/DwarfException.h | 8 +++--- lib/CodeGen/BranchFolding.h | 2 +- lib/CodeGen/CriticalAntiDepBreaker.h | 2 +- lib/CodeGen/InterferenceCache.h | 2 +- lib/CodeGen/LiveDebugVariables.h | 2 +- lib/CodeGen/LiveRangeCalc.h | 2 +- lib/CodeGen/PrologEpilogInserter.h | 2 +- lib/CodeGen/RegAllocBase.h | 2 +- lib/CodeGen/SelectionDAG/InstrEmitter.h | 2 +- lib/CodeGen/SelectionDAG/SDNodeDbgValue.h | 2 +- lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h | 2 +- .../SelectionDAG/SelectionDAGBuilder.h | 2 +- lib/CodeGen/SpillPlacement.h | 2 +- lib/CodeGen/SplitKit.h | 4 +-- lib/IR/AsmWriter.h | 4 +-- lib/IR/AttributeImpl.h | 12 ++++---- lib/IR/ConstantsContext.h | 28 +++++++++---------- lib/IR/LLVMContextImpl.h | 12 ++++---- lib/IR/LeaksContext.h | 2 +- lib/Transforms/Instrumentation/DebugIR.h | 2 +- .../ObjCARC/ARCRuntimeEntryPoints.h | 2 +- lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h | 4 +-- lib/Transforms/ObjCARC/ProvenanceAnalysis.h | 2 +- 35 files changed, 83 insertions(+), 82 deletions(-) diff --git a/lib/AsmParser/LLLexer.h b/lib/AsmParser/LLLexer.h index 85703c766b0..5dfb2be3b28 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 594281e9082..4af6e970de3 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 b095447675a..f82f03f73ee 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 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 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 d1ca15f45d0..f208eb34079 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 TypeList; diff --git a/lib/CodeGen/AggressiveAntiDepBreaker.h b/lib/CodeGen/AggressiveAntiDepBreaker.h index 6683630fba6..49be1881392 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 aed461a7ed0..f0d35beba28 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 Hints; ArrayRef Order; int Pos; diff --git a/lib/CodeGen/AntiDepBreaker.h b/lib/CodeGen/AntiDepBreaker.h index df47f984d57..b6e5450e0d6 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 > DbgValueVector; diff --git a/lib/CodeGen/AsmPrinter/DIE.h b/lib/CodeGen/AsmPrinter/DIE.h index 6eaa6ee66ef..d76083a67f7 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 b792aeab6ce..d0bf34c492a 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 7627313d28f..1ea0bfb7a0f 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 ecffb257025..2a8b648bd6a 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 c702180dc35..43d8141d1fd 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 49a85d81b4e..fe86184dc3e 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 0d15ed7e792..9ca0f29675e 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 565d20bac02..ef4059e7af6 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 c02fb9a1ee2..a7fb98057ad 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 58a3f0f6ff5..1d449fd10bf 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 69c7f765e6b..7a371c16d38 100644 --- a/lib/CodeGen/LiveRangeCalc.h +++ b/lib/CodeGen/LiveRangeCalc.h @@ -33,7 +33,7 @@ class MachineDominatorTree; template class DomTreeNodeBase; typedef DomTreeNodeBase 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 50f4daf7335..c18c0e8b88b 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 9c0029837d0..597b1fcb586 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 920dda8820f..1126707c3f5 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 4af7172847d..a08706a60c9 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 2ff37e0a15e..60663c0ba08 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 6463ecaca5a..ec640bca524 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 105516bb62b..0a90398a4cc 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 f029c73d122..e0a9c3176a4 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 8f4a37777eb..9e8355719a7 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 9da3f9659e0..ac7379b00e7 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 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 32bed95e212..b4f0a53210f 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 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 : }; DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value) -struct ExprMapKeyType { +struct LLVM_LIBRARY_VISIBILITY ExprMapKeyType { ExprMapKeyType(unsigned opc, ArrayRef 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 { template -class ConstantUniqueMap { +class LLVM_LIBRARY_VISIBILITY ConstantUniqueMap { public: typedef std::pair MapKey; typedef std::map MapTy; @@ -648,7 +648,7 @@ public: // Unique map for aggregate constants template -class ConstantAggrUniqueMap { +class LLVM_LIBRARY_VISIBILITY ConstantAggrUniqueMap { public: typedef ArrayRef Operands; typedef std::pair LookupKey; diff --git a/lib/IR/LLVMContextImpl.h b/lib/IR/LLVMContextImpl.h index 0c659b81b70..d56616676c9 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 ETypes; bool isPacked; @@ -138,7 +138,7 @@ struct AnonStructTypeKeyInfo { } }; -struct FunctionTypeKeyInfo { +struct LLVM_LIBRARY_VISIBILITY FunctionTypeKeyInfo { struct KeyTy { const Type *ReturnType; ArrayRef Params; @@ -209,7 +209,7 @@ template<> struct FoldingSetTrait : DefaultFoldingSetTrait { /// 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 5038dc9d6d6..78cd695ecd1 100644 --- a/lib/IR/LeaksContext.h +++ b/lib/IR/LeaksContext.h @@ -28,7 +28,7 @@ struct PrinterTrait { }; template -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 13774cf1747..06fea48157b 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 4eac39dedd2..43554b63ec8 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 41ccfe28ce8..646ed55e8ed 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 a13fb9e9b02..db96cf56d51 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 ValuePairTy; -- 2.34.1