Revert "Give internal classes hidden visibility."

It works with clang, but GCC has different rules so we can't make all of those
hidden. This reverts commit r190534.

llvm-svn: 190536
diff --git a/llvm/lib/AsmParser/LLLexer.h b/llvm/lib/AsmParser/LLLexer.h
index 5dfb2be..85703c7 100644
--- a/llvm/lib/AsmParser/LLLexer.h
+++ b/llvm/lib/AsmParser/LLLexer.h
@@ -26,7 +26,7 @@
   class SMDiagnostic;
   class LLVMContext;
 
-  class LLVM_LIBRARY_VISIBILITY LLLexer {
+  class LLLexer {
     const char *CurPtr;
     MemoryBuffer *CurBuf;
     SMDiagnostic &ErrorInfo;
diff --git a/llvm/lib/AsmParser/LLParser.h b/llvm/lib/AsmParser/LLParser.h
index 4af6e97..594281e 100644
--- a/llvm/lib/AsmParser/LLParser.h
+++ b/llvm/lib/AsmParser/LLParser.h
@@ -42,7 +42,7 @@
   /// 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 LLVM_LIBRARY_VISIBILITY ValID {
+  struct ValID {
     enum {
       t_LocalID, t_GlobalID,      // ID in UIntVal.
       t_LocalName, t_GlobalName,  // Name in StrVal.
@@ -83,7 +83,7 @@
     }
   };
 
-  class LLVM_LIBRARY_VISIBILITY LLParser {
+  class LLParser {
   public:
     typedef LLLexer::LocTy LocTy;
   private:
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.h b/llvm/lib/Bitcode/Reader/BitcodeReader.h
index f82f03f..b095447 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.h
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.h
@@ -32,7 +32,7 @@
 //                          BitcodeReaderValueList Class
 //===----------------------------------------------------------------------===//
 
-class LLVM_LIBRARY_VISIBILITY BitcodeReaderValueList {
+class BitcodeReaderValueList {
   std::vector<WeakVH> ValuePtrs;
 
   /// ResolveConstants - As we resolve forward-referenced constants, we add
@@ -91,7 +91,7 @@
 //                          BitcodeReaderMDValueList Class
 //===----------------------------------------------------------------------===//
 
-class LLVM_LIBRARY_VISIBILITY BitcodeReaderMDValueList {
+class BitcodeReaderMDValueList {
   std::vector<WeakVH> MDValuePtrs;
 
   LLVMContext &Context;
@@ -121,7 +121,7 @@
   void AssignValue(Value *V, unsigned Idx);
 };
 
-class LLVM_LIBRARY_VISIBILITY BitcodeReader : public GVMaterializer {
+class BitcodeReader : public GVMaterializer {
   LLVMContext &Context;
   Module *TheModule;
   MemoryBuffer *Buffer;
diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.h b/llvm/lib/Bitcode/Writer/ValueEnumerator.h
index f208eb3..d1ca15f 100644
--- a/llvm/lib/Bitcode/Writer/ValueEnumerator.h
+++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.h
@@ -34,7 +34,7 @@
 class MDSymbolTable;
 class raw_ostream;
 
-class LLVM_LIBRARY_VISIBILITY ValueEnumerator {
+class ValueEnumerator {
 public:
   typedef std::vector<Type*> TypeList;
 
diff --git a/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h b/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
index 49be188..6683630 100644
--- a/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
+++ b/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
@@ -34,7 +34,7 @@
 
   /// Class AggressiveAntiDepState
   /// Contains all the state necessary for anti-dep breaking.
-  class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepState {
+  class AggressiveAntiDepState {
   public:
     /// RegisterReference - Information about a register reference
     /// within a liverange
@@ -114,8 +114,7 @@
 
 
   /// Class AggressiveAntiDepBreaker
-  class LLVM_LIBRARY_VISIBILITY AggressiveAntiDepBreaker
-      : public AntiDepBreaker {
+  class AggressiveAntiDepBreaker : public AntiDepBreaker {
     MachineFunction& MF;
     MachineRegisterInfo &MRI;
     const TargetInstrInfo *TII;
diff --git a/llvm/lib/CodeGen/AllocationOrder.h b/llvm/lib/CodeGen/AllocationOrder.h
index f0d35be..aed461a 100644
--- a/llvm/lib/CodeGen/AllocationOrder.h
+++ b/llvm/lib/CodeGen/AllocationOrder.h
@@ -25,7 +25,7 @@
 class RegisterClassInfo;
 class VirtRegMap;
 
-class LLVM_LIBRARY_VISIBILITY AllocationOrder {
+class AllocationOrder {
   SmallVector<MCPhysReg, 16> Hints;
   ArrayRef<MCPhysReg> Order;
   int Pos;
diff --git a/llvm/lib/CodeGen/AntiDepBreaker.h b/llvm/lib/CodeGen/AntiDepBreaker.h
index b6e5450..df47f98 100644
--- a/llvm/lib/CodeGen/AntiDepBreaker.h
+++ b/llvm/lib/CodeGen/AntiDepBreaker.h
@@ -28,7 +28,7 @@
 /// AntiDepBreaker - This class works into conjunction with the
 /// post-RA scheduler to rename registers to break register
 /// anti-dependencies.
-class LLVM_LIBRARY_VISIBILITY AntiDepBreaker {
+class AntiDepBreaker {
 public:
   typedef std::vector<std::pair<MachineInstr *, MachineInstr *> > 
     DbgValueVector;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DIE.h b/llvm/lib/CodeGen/AsmPrinter/DIE.h
index d76083a..6eaa6ee 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DIE.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DIE.h
@@ -30,7 +30,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEAbbrevData - Dwarf abbreviation data, describes one attribute of a
   /// Dwarf abbreviation.
-  class LLVM_LIBRARY_VISIBILITY DIEAbbrevData {
+  class DIEAbbrevData {
     /// Attribute - Dwarf attribute code.
     ///
     uint16_t Attribute;
@@ -53,7 +53,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEAbbrev - Dwarf abbreviation, describes the organization of a debug
   /// information object.
-  class LLVM_LIBRARY_VISIBILITY DIEAbbrev : public FoldingSetNode {
+  class DIEAbbrev : public FoldingSetNode {
     /// Tag - Dwarf tag code.
     ///
     uint16_t Tag;
@@ -107,7 +107,7 @@
   /// describes its organization.
   class DIEValue;
 
-  class LLVM_LIBRARY_VISIBILITY DIE {
+  class DIE {
   protected:
     /// Offset - Offset in debug info section.
     ///
@@ -188,7 +188,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEValue - A debug information entry value.
   ///
-  class LLVM_LIBRARY_VISIBILITY DIEValue {
+  class DIEValue {
     virtual void anchor();
   public:
     enum {
@@ -228,7 +228,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEInteger - An integer value DIE.
   ///
-  class LLVM_LIBRARY_VISIBILITY DIEInteger : public DIEValue {
+  class DIEInteger : public DIEValue {
     uint64_t Integer;
   public:
     explicit DIEInteger(uint64_t I) : DIEValue(isInteger), Integer(I) {}
@@ -270,7 +270,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEExpr - An expression DIE.
   //
-  class LLVM_LIBRARY_VISIBILITY DIEExpr : public DIEValue {
+  class DIEExpr : public DIEValue {
     const MCExpr *Expr;
   public:
     explicit DIEExpr(const MCExpr *E) : DIEValue(isExpr), Expr(E) {}
@@ -298,7 +298,7 @@
   //===--------------------------------------------------------------------===//
   /// DIELabel - A label DIE.
   //
-  class LLVM_LIBRARY_VISIBILITY DIELabel : public DIEValue {
+  class DIELabel : public DIEValue {
     const MCSymbol *Label;
   public:
     explicit DIELabel(const MCSymbol *L) : DIEValue(isLabel), Label(L) {}
@@ -326,7 +326,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEDelta - A simple label difference DIE.
   ///
-  class LLVM_LIBRARY_VISIBILITY DIEDelta : public DIEValue {
+  class DIEDelta : public DIEValue {
     const MCSymbol *LabelHi;
     const MCSymbol *LabelLo;
   public:
@@ -352,7 +352,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEString - A container for string values.
   ///
-  class LLVM_LIBRARY_VISIBILITY DIEString : public DIEValue {
+  class DIEString : public DIEValue {
     const DIEValue *Access;
     const StringRef Str;
 
@@ -383,7 +383,7 @@
   /// 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 LLVM_LIBRARY_VISIBILITY DIEEntry : public DIEValue {
+  class DIEEntry : public DIEValue {
     DIE *const Entry;
   public:
     explicit DIEEntry(DIE *E) : DIEValue(isEntry), Entry(E) {
@@ -417,7 +417,7 @@
   //===--------------------------------------------------------------------===//
   /// DIEBlock - A block of values.  Primarily used for location expressions.
   //
-  class LLVM_LIBRARY_VISIBILITY DIEBlock : public DIEValue, public DIE {
+  class DIEBlock : public DIEValue, public DIE {
     unsigned Size;                // Size in bytes excluding size header.
   public:
     DIEBlock()
diff --git a/llvm/lib/CodeGen/AsmPrinter/DIEHash.h b/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
index d0bf34c..b792aea 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
@@ -19,7 +19,7 @@
 
 /// \brief An object containing the capability of hashing and adding hash
 /// attributes onto a DIE.
-class LLVM_LIBRARY_VISIBILITY DIEHash {
+class DIEHash {
   // The entry for a particular attribute.
   struct AttrEntry {
     const DIEValue *Val;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h b/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
index 1ea0bfb..7627313 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
@@ -65,7 +65,7 @@
 class DIE;
 class DwarfUnits;
 
-class LLVM_LIBRARY_VISIBILITY DwarfAccelTable {
+class DwarfAccelTable {
 
   static uint32_t HashDJB(StringRef Str) {
     uint32_t h = 5381;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
index 2a8b648..ecffb25 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
@@ -34,7 +34,7 @@
 //===----------------------------------------------------------------------===//
 /// CompileUnit - This dwarf writer support class manages information associated
 /// with a source file.
-class LLVM_LIBRARY_VISIBILITY CompileUnit {
+class CompileUnit {
   /// UniqueID - a numeric ID unique among all CUs in the module
   ///
   unsigned UniqueID;
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
index 43d8141..c702180 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -44,7 +44,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \brief This class is used to record source line correspondence.
-class LLVM_LIBRARY_VISIBILITY SrcLineInfo {
+class SrcLineInfo {
   unsigned Line;                     // Source line number.
   unsigned Column;                   // Source column.
   unsigned SourceID;                 // Source ID number.
@@ -62,7 +62,7 @@
 
 /// \brief This struct describes location entries emitted in the .debug_loc
 /// section.
-class LLVM_LIBRARY_VISIBILITY DotDebugLocEntry {
+class DotDebugLocEntry {
   // Begin and end symbols for the address range that this location is valid.
   const MCSymbol *Begin;
   const MCSymbol *End;
@@ -143,7 +143,7 @@
 
 //===----------------------------------------------------------------------===//
 /// \brief This class is used to track local variable information.
-class LLVM_LIBRARY_VISIBILITY DbgVariable {
+class DbgVariable {
   DIVariable Var;                    // Variable Descriptor.
   DIE *TheDIE;                       // Variable DIE.
   unsigned DotDebugLocOffset;        // Offset in DotDebugLocEntries.
@@ -212,7 +212,7 @@
 
 /// \brief Collects and handles information specific to a particular
 /// collection of units.
-class LLVM_LIBRARY_VISIBILITY DwarfUnits {
+class DwarfUnits {
   // Target of Dwarf emission, used for sizing of abbreviations.
   AsmPrinter *Asm;
 
@@ -301,7 +301,7 @@
 };
 
 /// \brief Collects and handles dwarf debug information.
-class LLVM_LIBRARY_VISIBILITY DwarfDebug {
+class DwarfDebug {
   // Target of Dwarf emission.
   AsmPrinter *Asm;
 
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfException.h b/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
index fe86184..49a85d8 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
@@ -34,7 +34,7 @@
 //===----------------------------------------------------------------------===//
 /// DwarfException - Emits Dwarf exception handling directives.
 ///
-class LLVM_LIBRARY_VISIBILITY DwarfException {
+class DwarfException {
 protected:
   /// Asm - Target of Dwarf emission.
   AsmPrinter *Asm;
@@ -141,7 +141,7 @@
   virtual void EndFunction();
 };
 
-class LLVM_LIBRARY_VISIBILITY DwarfCFIException : public DwarfException {
+class DwarfCFIException : public DwarfException {
   /// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality
   /// should be emitted.
   bool shouldEmitPersonality;
@@ -175,7 +175,7 @@
   virtual void EndFunction();
 };
 
-class LLVM_LIBRARY_VISIBILITY ARMException : public DwarfException {
+class ARMException : public DwarfException {
   void EmitTypeInfos(unsigned TTypeEncoding);
 public:
   //===--------------------------------------------------------------------===//
@@ -196,7 +196,7 @@
   virtual void EndFunction();
 };
 
-class LLVM_LIBRARY_VISIBILITY Win64Exception : public DwarfException {
+class Win64Exception : public DwarfException {
   /// shouldEmitPersonality - Per-function flag to indicate if personality
   /// info should be emitted.
   bool shouldEmitPersonality;
diff --git a/llvm/lib/CodeGen/BranchFolding.h b/llvm/lib/CodeGen/BranchFolding.h
index 9ca0f29..0d15ed7 100644
--- a/llvm/lib/CodeGen/BranchFolding.h
+++ b/llvm/lib/CodeGen/BranchFolding.h
@@ -21,7 +21,7 @@
   class TargetInstrInfo;
   class TargetRegisterInfo;
 
-  class LLVM_LIBRARY_VISIBILITY BranchFolder {
+  class BranchFolder {
   public:
     explicit BranchFolder(bool defaultEnableTailMerge, bool CommonHoist);
 
diff --git a/llvm/lib/CodeGen/CriticalAntiDepBreaker.h b/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
index ef4059e..565d20b 100644
--- a/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
+++ b/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
@@ -31,7 +31,7 @@
 class TargetInstrInfo;
 class TargetRegisterInfo;
 
-  class LLVM_LIBRARY_VISIBILITY CriticalAntiDepBreaker : public AntiDepBreaker {
+  class CriticalAntiDepBreaker : public AntiDepBreaker {
     MachineFunction& MF;
     MachineRegisterInfo &MRI;
     const TargetInstrInfo *TII;
diff --git a/llvm/lib/CodeGen/InterferenceCache.h b/llvm/lib/CodeGen/InterferenceCache.h
index a7fb980..c02fb9a 100644
--- a/llvm/lib/CodeGen/InterferenceCache.h
+++ b/llvm/lib/CodeGen/InterferenceCache.h
@@ -21,7 +21,7 @@
 
 class LiveIntervals;
 
-class LLVM_LIBRARY_VISIBILITY InterferenceCache {
+class InterferenceCache {
   const TargetRegisterInfo *TRI;
   LiveIntervalUnion *LIUArray;
   MachineFunction *MF;
diff --git a/llvm/lib/CodeGen/LiveDebugVariables.h b/llvm/lib/CodeGen/LiveDebugVariables.h
index 1d449fd..58a3f0f 100644
--- a/llvm/lib/CodeGen/LiveDebugVariables.h
+++ b/llvm/lib/CodeGen/LiveDebugVariables.h
@@ -30,7 +30,7 @@
 class LiveIntervals;
 class VirtRegMap;
 
-class LLVM_LIBRARY_VISIBILITY LiveDebugVariables : public MachineFunctionPass {
+class LiveDebugVariables : public MachineFunctionPass {
   void *pImpl;
 public:
   static char ID; // Pass identification, replacement for typeid
diff --git a/llvm/lib/CodeGen/LiveRangeCalc.h b/llvm/lib/CodeGen/LiveRangeCalc.h
index 7a371c1..69c7f76 100644
--- a/llvm/lib/CodeGen/LiveRangeCalc.h
+++ b/llvm/lib/CodeGen/LiveRangeCalc.h
@@ -33,7 +33,7 @@
 template <class NodeT> class DomTreeNodeBase;
 typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode;
 
-class LLVM_LIBRARY_VISIBILITY LiveRangeCalc {
+class LiveRangeCalc {
   const MachineFunction *MF;
   const MachineRegisterInfo *MRI;
   SlotIndexes *Indexes;
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.h b/llvm/lib/CodeGen/PrologEpilogInserter.h
index c18c0e8..50f4daf 100644
--- a/llvm/lib/CodeGen/PrologEpilogInserter.h
+++ b/llvm/lib/CodeGen/PrologEpilogInserter.h
@@ -33,7 +33,7 @@
   class RegScavenger;
   class MachineBasicBlock;
 
-  class LLVM_LIBRARY_VISIBILITY PEI : public MachineFunctionPass {
+  class PEI : public MachineFunctionPass {
   public:
     static char ID;
     PEI() : MachineFunctionPass(ID) {
diff --git a/llvm/lib/CodeGen/RegAllocBase.h b/llvm/lib/CodeGen/RegAllocBase.h
index 597b1fc..9c00298 100644
--- a/llvm/lib/CodeGen/RegAllocBase.h
+++ b/llvm/lib/CodeGen/RegAllocBase.h
@@ -56,7 +56,7 @@
 /// Register allocators must override the selectOrSplit() method to implement
 /// live range splitting. They must also override enqueue/dequeue to provide an
 /// assignment order.
-class LLVM_LIBRARY_VISIBILITY RegAllocBase {
+class RegAllocBase {
 protected:
   const TargetRegisterInfo *TRI;
   MachineRegisterInfo *MRI;
diff --git a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
index 1126707..920dda8 100644
--- a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
+++ b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
@@ -26,7 +26,7 @@
 class MCInstrDesc;
 class SDDbgValue;
 
-class LLVM_LIBRARY_VISIBILITY InstrEmitter {
+class InstrEmitter {
   MachineFunction *MF;
   MachineRegisterInfo *MRI;
   const TargetMachine *TM;
diff --git a/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h b/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
index a08706a..4af7172 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
+++ b/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
@@ -27,7 +27,7 @@
 /// SDDbgValue - Holds the information from a dbg_value node through SDISel.
 /// We do not use SDValue here to avoid including its header.
 
-class LLVM_LIBRARY_VISIBILITY SDDbgValue {
+class SDDbgValue {
 public:
   enum DbgValueKind {
     SDNODE = 0,             // value is the result of an expression
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
index 60663c0..2ff37e0 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
@@ -33,7 +33,7 @@
   /// edges.  Physical register dependence information is not carried in
   /// the DAG and must be handled explicitly by schedulers.
   ///
-  class LLVM_LIBRARY_VISIBILITY ScheduleDAGSDNodes : public ScheduleDAG {
+  class ScheduleDAGSDNodes : public ScheduleDAG {
   public:
     MachineBasicBlock *BB;
     SelectionDAG *DAG;                    // DAG of the current basic block
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
index ec640bc..6463eca 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
@@ -79,7 +79,7 @@
 /// SelectionDAGBuilder - This is the common target-independent lowering
 /// implementation that is parameterized by a TargetLowering object.
 ///
-class LLVM_LIBRARY_VISIBILITY SelectionDAGBuilder {
+class SelectionDAGBuilder {
   /// CurInst - The current instruction being visited
   const Instruction *CurInst;
 
diff --git a/llvm/lib/CodeGen/SpillPlacement.h b/llvm/lib/CodeGen/SpillPlacement.h
index 0a90398..105516b 100644
--- a/llvm/lib/CodeGen/SpillPlacement.h
+++ b/llvm/lib/CodeGen/SpillPlacement.h
@@ -39,7 +39,7 @@
 class MachineBasicBlock;
 class MachineLoopInfo;
 
-class LLVM_LIBRARY_VISIBILITY SpillPlacement : public MachineFunctionPass {
+class SpillPlacement  : public MachineFunctionPass {
   struct Node;
   const MachineFunction *MF;
   const EdgeBundles *bundles;
diff --git a/llvm/lib/CodeGen/SplitKit.h b/llvm/lib/CodeGen/SplitKit.h
index e0a9c31..f029c73 100644
--- a/llvm/lib/CodeGen/SplitKit.h
+++ b/llvm/lib/CodeGen/SplitKit.h
@@ -39,7 +39,7 @@
 
 /// SplitAnalysis - Analyze a LiveInterval, looking for live range splitting
 /// opportunities.
-class LLVM_LIBRARY_VISIBILITY SplitAnalysis {
+class SplitAnalysis {
 public:
   const MachineFunction &MF;
   const VirtRegMap &VRM;
@@ -208,7 +208,7 @@
 /// - Finish the current interval with closeIntv and repeat from 2.
 /// - Rewrite instructions with finish().
 ///
-class LLVM_LIBRARY_VISIBILITY SplitEditor {
+class SplitEditor {
   SplitAnalysis &SA;
   LiveIntervals &LIS;
   VirtRegMap &VRM;
diff --git a/llvm/lib/IR/AsmWriter.h b/llvm/lib/IR/AsmWriter.h
index 9e83557..8f4a377 100644
--- a/llvm/lib/IR/AsmWriter.h
+++ b/llvm/lib/IR/AsmWriter.h
@@ -39,7 +39,7 @@
 // TypePrinting Class: Type printing machinery
 //===----------------------------------------------------------------------===//
 
-class LLVM_LIBRARY_VISIBILITY TypePrinting {
+class TypePrinting {
   TypePrinting(const TypePrinting &) LLVM_DELETED_FUNCTION;
   void operator=(const TypePrinting&) LLVM_DELETED_FUNCTION;
 public:
@@ -61,7 +61,7 @@
   void printStructBody(StructType *Ty, raw_ostream &OS);
 };
 
-class LLVM_LIBRARY_VISIBILITY AssemblyWriter {
+class AssemblyWriter {
 protected:
   formatted_raw_ostream &Out;
   const Module *TheModule;
diff --git a/llvm/lib/IR/AttributeImpl.h b/llvm/lib/IR/AttributeImpl.h
index ac7379b..9da3f96 100644
--- a/llvm/lib/IR/AttributeImpl.h
+++ b/llvm/lib/IR/AttributeImpl.h
@@ -29,7 +29,7 @@
 /// \class
 /// \brief This class represents a single, uniqued attribute. That attribute
 /// could be a single enum, a tuple, or a string.
-class LLVM_LIBRARY_VISIBILITY AttributeImpl : public FoldingSetNode {
+class 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 @@
 /// represented by Attribute::AttrKind; alignment attribute entries; and string
 /// attribute enties, which are for target-dependent attributes.
 
-class LLVM_LIBRARY_VISIBILITY EnumAttributeImpl : public AttributeImpl {
+class EnumAttributeImpl : public AttributeImpl {
   Attribute::AttrKind Kind;
 
 protected:
@@ -107,7 +107,7 @@
   Attribute::AttrKind getEnumKind() const { return Kind; }
 };
 
-class LLVM_LIBRARY_VISIBILITY AlignAttributeImpl : public EnumAttributeImpl {
+class AlignAttributeImpl : public EnumAttributeImpl {
   unsigned Align;
 
 public:
@@ -121,7 +121,7 @@
   unsigned getAlignment() const { return Align; }
 };
 
-class LLVM_LIBRARY_VISIBILITY StringAttributeImpl : public AttributeImpl {
+class StringAttributeImpl : public AttributeImpl {
   std::string Kind;
   std::string Val;
 
@@ -137,7 +137,7 @@
 /// \class
 /// \brief This class represents a group of attributes that apply to one
 /// element: function, return type, or parameter.
-class LLVM_LIBRARY_VISIBILITY AttributeSetNode : public FoldingSetNode {
+class AttributeSetNode : public FoldingSetNode {
   unsigned NumAttrs; ///< Number of attributes in this node.
 
   AttributeSetNode(ArrayRef<Attribute> Attrs) : NumAttrs(Attrs.size()) {
@@ -180,7 +180,7 @@
 /// \class
 /// \brief This class represents a set of attributes that apply to the function,
 /// return type, and parameters.
-class LLVM_LIBRARY_VISIBILITY AttributeSetImpl : public FoldingSetNode {
+class AttributeSetImpl : public FoldingSetNode {
   friend class AttributeSet;
 
   LLVMContext &Context;
diff --git a/llvm/lib/IR/ConstantsContext.h b/llvm/lib/IR/ConstantsContext.h
index b4f0a53..32bed95 100644
--- a/llvm/lib/IR/ConstantsContext.h
+++ b/llvm/lib/IR/ConstantsContext.h
@@ -31,7 +31,7 @@
 
 /// UnaryConstantExpr - This class is private to Constants.cpp, and is used
 /// behind the scenes to implement unary constant exprs.
-class LLVM_LIBRARY_VISIBILITY UnaryConstantExpr : public ConstantExpr {
+class UnaryConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -48,7 +48,7 @@
 
 /// BinaryConstantExpr - This class is private to Constants.cpp, and is used
 /// behind the scenes to implement binary constant exprs.
-class LLVM_LIBRARY_VISIBILITY BinaryConstantExpr : public ConstantExpr {
+class BinaryConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -69,7 +69,7 @@
 
 /// SelectConstantExpr - This class is private to Constants.cpp, and is used
 /// behind the scenes to implement select constant exprs.
-class LLVM_LIBRARY_VISIBILITY SelectConstantExpr : public ConstantExpr {
+class SelectConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -90,7 +90,7 @@
 /// ExtractElementConstantExpr - This class is private to
 /// Constants.cpp, and is used behind the scenes to implement
 /// extractelement constant exprs.
-class LLVM_LIBRARY_VISIBILITY ExtractElementConstantExpr : public ConstantExpr {
+class ExtractElementConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -111,7 +111,7 @@
 /// InsertElementConstantExpr - This class is private to
 /// Constants.cpp, and is used behind the scenes to implement
 /// insertelement constant exprs.
-class LLVM_LIBRARY_VISIBILITY InsertElementConstantExpr : public ConstantExpr {
+class InsertElementConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -133,7 +133,7 @@
 /// ShuffleVectorConstantExpr - This class is private to
 /// Constants.cpp, and is used behind the scenes to implement
 /// shufflevector constant exprs.
-class LLVM_LIBRARY_VISIBILITY ShuffleVectorConstantExpr : public ConstantExpr {
+class ShuffleVectorConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -158,7 +158,7 @@
 /// ExtractValueConstantExpr - This class is private to
 /// Constants.cpp, and is used behind the scenes to implement
 /// extractvalue constant exprs.
-class LLVM_LIBRARY_VISIBILITY ExtractValueConstantExpr : public ConstantExpr {
+class ExtractValueConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -184,7 +184,7 @@
 /// InsertValueConstantExpr - This class is private to
 /// Constants.cpp, and is used behind the scenes to implement
 /// insertvalue constant exprs.
-class LLVM_LIBRARY_VISIBILITY InsertValueConstantExpr : public ConstantExpr {
+class InsertValueConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -211,7 +211,7 @@
 
 /// GetElementPtrConstantExpr - This class is private to Constants.cpp, and is
 /// used behind the scenes to implement getelementpr constant exprs.
-class LLVM_LIBRARY_VISIBILITY GetElementPtrConstantExpr : public ConstantExpr {
+class GetElementPtrConstantExpr : public ConstantExpr {
   virtual void anchor();
   GetElementPtrConstantExpr(Constant *C, ArrayRef<Constant*> IdxList,
                             Type *DestTy);
@@ -232,7 +232,7 @@
 // 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 LLVM_LIBRARY_VISIBILITY CompareConstantExpr : public ConstantExpr {
+class CompareConstantExpr : public ConstantExpr {
   virtual void anchor();
   void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION;
 public:
@@ -313,7 +313,7 @@
 };
 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CompareConstantExpr, Value)
 
-struct LLVM_LIBRARY_VISIBILITY ExprMapKeyType {
+struct ExprMapKeyType {
   ExprMapKeyType(unsigned opc,
       ArrayRef<Constant*> ops,
       unsigned short flags = 0,
@@ -349,7 +349,7 @@
   }
 };
 
-struct LLVM_LIBRARY_VISIBILITY InlineAsmKeyType {
+struct InlineAsmKeyType {
   InlineAsmKeyType(StringRef AsmString,
                    StringRef Constraints, bool hasSideEffects,
                    bool isAlignStack, InlineAsm::AsmDialect asmDialect)
@@ -512,7 +512,7 @@
 
 template<class ValType, class ValRefType, class TypeClass, class ConstantClass,
          bool HasLargeKey = false /*true for arrays and structs*/ >
-class LLVM_LIBRARY_VISIBILITY ConstantUniqueMap {
+class ConstantUniqueMap {
 public:
   typedef std::pair<TypeClass*, ValType> MapKey;
   typedef std::map<MapKey, ConstantClass *> MapTy;
@@ -648,7 +648,7 @@
 
 // Unique map for aggregate constants
 template<class TypeClass, class ConstantClass>
-class LLVM_LIBRARY_VISIBILITY ConstantAggrUniqueMap {
+class ConstantAggrUniqueMap {
 public:
   typedef ArrayRef<Constant*> Operands;
   typedef std::pair<TypeClass*, Operands> LookupKey;
diff --git a/llvm/lib/IR/LLVMContextImpl.h b/llvm/lib/IR/LLVMContextImpl.h
index d566166..0c659b8 100644
--- a/llvm/lib/IR/LLVMContextImpl.h
+++ b/llvm/lib/IR/LLVMContextImpl.h
@@ -41,7 +41,7 @@
 class Type;
 class Value;
 
-struct LLVM_LIBRARY_VISIBILITY DenseMapAPIntKeyInfo {
+struct DenseMapAPIntKeyInfo {
   struct KeyTy {
     APInt val;
     Type* type;
@@ -66,7 +66,7 @@
   }
 };
 
-struct LLVM_LIBRARY_VISIBILITY DenseMapAPFloatKeyInfo {
+struct DenseMapAPFloatKeyInfo {
   struct KeyTy {
     APFloat val;
     KeyTy(const APFloat& V) : val(V){}
@@ -94,7 +94,7 @@
   }
 };
 
-struct LLVM_LIBRARY_VISIBILITY AnonStructTypeKeyInfo {
+struct AnonStructTypeKeyInfo {
   struct KeyTy {
     ArrayRef<Type*> ETypes;
     bool isPacked;
@@ -138,7 +138,7 @@
   }
 };
 
-struct LLVM_LIBRARY_VISIBILITY FunctionTypeKeyInfo {
+struct FunctionTypeKeyInfo {
   struct KeyTy {
     const Type *ReturnType;
     ArrayRef<Type*> Params;
@@ -209,7 +209,7 @@
 
 /// 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 LLVM_LIBRARY_VISIBILITY DebugRecVH : public CallbackVH {
+class DebugRecVH : public CallbackVH {
   /// Ctx - This is the LLVM Context being referenced.
   LLVMContextImpl *Ctx;
   
@@ -230,7 +230,7 @@
   virtual void allUsesReplacedWith(Value *VNew);
 };
   
-class LLVM_LIBRARY_VISIBILITY LLVMContextImpl {
+class 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/llvm/lib/IR/LeaksContext.h b/llvm/lib/IR/LeaksContext.h
index 78cd695..5038dc9 100644
--- a/llvm/lib/IR/LeaksContext.h
+++ b/llvm/lib/IR/LeaksContext.h
@@ -28,7 +28,7 @@
 };
 
 template <typename T>
-struct LLVM_LIBRARY_VISIBILITY LeakDetectorImpl {
+struct LeakDetectorImpl {
   explicit LeakDetectorImpl(const char* const name = "") : 
     Cache(0), Name(name) { }
 
diff --git a/llvm/lib/Transforms/Instrumentation/DebugIR.h b/llvm/lib/Transforms/Instrumentation/DebugIR.h
index 06fea48..13774cf 100644
--- a/llvm/lib/Transforms/Instrumentation/DebugIR.h
+++ b/llvm/lib/Transforms/Instrumentation/DebugIR.h
@@ -21,7 +21,7 @@
 
 namespace llvm {
 
-class LLVM_LIBRARY_VISIBILITY DebugIR : public llvm::ModulePass {
+class DebugIR : public llvm::ModulePass {
   /// If true, write a source file to disk.
   bool WriteSourceToDisk;
 
diff --git a/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h b/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
index 43554b6..4eac39d 100644
--- a/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
+++ b/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
@@ -29,7 +29,7 @@
 
 /// Declarations for ObjC runtime functions and constants. These are initialized
 /// lazily to avoid cluttering up the Module with unused declarations.
-class LLVM_LIBRARY_VISIBILITY ARCRuntimeEntryPoints {
+class ARCRuntimeEntryPoints {
 public:
   enum EntryPointType {
     EPT_AutoreleaseRV,
diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h b/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h
index 646ed55..41ccfe2 100644
--- a/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h
+++ b/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h
@@ -35,8 +35,8 @@
   /// 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 LLVM_LIBRARY_VISIBILITY ObjCARCAliasAnalysis : public ImmutablePass,
-                                                       public AliasAnalysis {
+  class ObjCARCAliasAnalysis : public ImmutablePass,
+                               public AliasAnalysis {
   public:
     static char ID; // Class identification, replacement for typeinfo
     ObjCARCAliasAnalysis() : ImmutablePass(ID) {
diff --git a/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h b/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
index db96cf5..a13fb9e 100644
--- a/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
+++ b/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
@@ -46,7 +46,7 @@
 /// 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 LLVM_LIBRARY_VISIBILITY ProvenanceAnalysis {
+class ProvenanceAnalysis {
   AliasAnalysis *AA;
 
   typedef std::pair<const Value *, const Value *> ValuePairTy;