Use hidden visibility to make symbols in an anonymous namespace get
dropped.  This shrinks libllvmgcc.dylib another 67K

llvm-svn: 28975
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index c6e32c5..a83d2ee 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -69,9 +69,10 @@
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Support/CFG.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Support/ConstantRange.h"
 #include "llvm/Support/InstIterator.h"
-#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Visibility.h"
 #include "llvm/ADT/Statistic.h"
 #include <cmath>
 #include <iostream>
@@ -393,7 +394,7 @@
   /// SCEVComplexityCompare - Return true if the complexity of the LHS is less
   /// than the complexity of the RHS.  This comparator is used to canonicalize
   /// expressions.
-  struct SCEVComplexityCompare {
+  struct VISIBILITY_HIDDEN SCEVComplexityCompare {
     bool operator()(SCEV *LHS, SCEV *RHS) {
       return LHS->getSCEVType() < RHS->getSCEVType();
     }
@@ -1062,7 +1063,7 @@
 /// evolution code.
 ///
 namespace {
-  struct ScalarEvolutionsImpl {
+  struct VISIBILITY_HIDDEN ScalarEvolutionsImpl {
     /// F - The function we are analyzing.
     ///
     Function &F;