Added RUN line.
[oota-llvm.git] / tools / gccld / GenerateCode.cpp
index 74576bb1ba38732e1f1248c457f2b5ebadccc3b5..1144b92a643c8781c47d42094cbade3f9b36096e 100644 (file)
@@ -24,8 +24,8 @@
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Support/Linker.h"
-#include "Support/SystemUtils.h"
-#include "Support/CommandLine.h"
+#include "llvm/Support/SystemUtils.h"
+#include "llvm/Support/CommandLine.h"
 using namespace llvm;
 
 namespace {
@@ -38,9 +38,6 @@ namespace {
   cl::opt<bool>
   DisableOptimizations("disable-opt",
                        cl::desc("Do not run any optimization passes"));
-  cl::opt<bool>
-  DisableGlobalsModRef("disable-globalsmodref", cl::Hidden,
-                      cl::desc("Turn on the more aggressive alias analysis"));
 }
 
 /// CopyEnv - This function takes an array of environment variables and makes a
@@ -164,9 +161,8 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
       addPass(Passes, createInternalizePass());
     }
 
-    // Now that we internalized some globals, see if we can mark any globals as
-    // being constant!
-    addPass(Passes, createGlobalConstifierPass());
+    // Now that we internalized some globals, see if we can hack on them!
+    addPass(Passes, createGlobalOptimizerPass());
 
     // Linking modules together can lead to duplicated global constants, only
     // keep one copy of each constant...
@@ -188,6 +184,7 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
       addPass(Passes, createFunctionInliningPass()); // Inline small functions
 
     addPass(Passes, createPruneEHPass());            // Remove dead EH info
+    addPass(Passes, createGlobalOptimizerPass());    // Optimize globals again.
     addPass(Passes, createGlobalDCEPass());          // Remove dead functions
 
     // If we didn't decide to inline a function, check to see if we can
@@ -200,8 +197,7 @@ int llvm::GenerateBytecode(Module *M, bool Strip, bool Internalize,
     addPass(Passes, createScalarReplAggregatesPass()); // Break up allocas
 
     // Run a few AA driven optimizations here and now, to cleanup the code.
-    if (!DisableGlobalsModRef)
-      addPass(Passes, createGlobalsModRefPass());    // IP alias analysis
+    addPass(Passes, createGlobalsModRefPass());      // IP alias analysis
 
     addPass(Passes, createLICMPass());               // Hoist loop invariants
     addPass(Passes, createLoadValueNumberingPass()); // GVN for load instrs