summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-09-11 17:42:27 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-09-11 17:42:27 +0000
commit15f387c93ef8d5c23f110143996c8b9b4a089864 (patch)
treec05dd44a175d30a5e34ed8d21ecea848a8c1f776
parent209a8c8e35cd770d483d597c4eb703a4ee8b0003 (diff)
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
-rw-r--r--lib/AsmParser/LLLexer.h2
-rw-r--r--lib/AsmParser/LLParser.h4
-rw-r--r--lib/Bitcode/Reader/BitcodeReader.h6
-rw-r--r--lib/Bitcode/Writer/ValueEnumerator.h2
-rw-r--r--lib/CodeGen/AggressiveAntiDepBreaker.h5
-rw-r--r--lib/CodeGen/AllocationOrder.h2
-rw-r--r--lib/CodeGen/AntiDepBreaker.h2
-rw-r--r--lib/CodeGen/AsmPrinter/DIE.h22
-rw-r--r--lib/CodeGen/AsmPrinter/DIEHash.h2
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfAccelTable.h2
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfCompileUnit.h2
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfDebug.h10
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfException.h8
-rw-r--r--lib/CodeGen/BranchFolding.h2
-rw-r--r--lib/CodeGen/CriticalAntiDepBreaker.h2
-rw-r--r--lib/CodeGen/InterferenceCache.h2
-rw-r--r--lib/CodeGen/LiveDebugVariables.h2
-rw-r--r--lib/CodeGen/LiveRangeCalc.h2
-rw-r--r--lib/CodeGen/PrologEpilogInserter.h2
-rw-r--r--lib/CodeGen/RegAllocBase.h2
-rw-r--r--lib/CodeGen/SelectionDAG/InstrEmitter.h2
-rw-r--r--lib/CodeGen/SelectionDAG/SDNodeDbgValue.h2
-rw-r--r--lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h2
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h2
-rw-r--r--lib/CodeGen/SpillPlacement.h2
-rw-r--r--lib/CodeGen/SplitKit.h4
-rw-r--r--lib/IR/AsmWriter.h4
-rw-r--r--lib/IR/AttributeImpl.h12
-rw-r--r--lib/IR/ConstantsContext.h28
-rw-r--r--lib/IR/LLVMContextImpl.h12
-rw-r--r--lib/IR/LeaksContext.h2
-rw-r--r--lib/Transforms/Instrumentation/DebugIR.h2
-rw-r--r--lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h2
-rw-r--r--lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h4
-rw-r--r--lib/Transforms/ObjCARC/ProvenanceAnalysis.h2
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<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 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<Type*> 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<MCPhysReg, 16> Hints;
ArrayRef<MCPhysReg> 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<std::pair<MachineInstr *, MachineInstr *> >
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 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 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<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 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<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 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<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 5038dc9d6d6..78cd695ecd1 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 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<const Value *, const Value *> ValuePairTy;