Give internal classes hidden visibility.

Worth 100k on a linux/x86_64 Release+Asserts clang.

llvm-svn: 190534
diff --git a/llvm/lib/Transforms/Instrumentation/DebugIR.h b/llvm/lib/Transforms/Instrumentation/DebugIR.h
index 13774cf..06fea48 100644
--- a/llvm/lib/Transforms/Instrumentation/DebugIR.h
+++ b/llvm/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/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h b/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
index 4eac39d..43554b6 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 ARCRuntimeEntryPoints {
+class LLVM_LIBRARY_VISIBILITY ARCRuntimeEntryPoints {
 public:
   enum EntryPointType {
     EPT_AutoreleaseRV,
diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h b/llvm/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.h
index 41ccfe2..646ed55 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 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/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h b/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
index a13fb9e..db96cf5 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 ProvenanceAnalysis {
+class LLVM_LIBRARY_VISIBILITY ProvenanceAnalysis {
   AliasAnalysis *AA;
 
   typedef std::pair<const Value *, const Value *> ValuePairTy;