Simplify some getNode calls.
[oota-llvm.git] / tools / llvm-ld / Optimize.cpp
index 85c6074843873ee2f5fe512700ac9283a6387f59..cbdf2f74990a6c9873a434b976857fd6b638ccb9 100644 (file)
@@ -32,7 +32,7 @@ using namespace llvm;
 static cl::list<const PassInfo*, bool, PassNameParser>
   OptimizationList(cl::desc("Optimizations available:"));
 
-//Don't veryify at the end
+//Don't verify at the end
 static cl::opt<bool> DontVerify("disable-verify", cl::ReallyHidden);
 
 // Optimization Enumeration
@@ -162,7 +162,7 @@ void Optimize(Module* M) {
 
     // The IPO passes may leave cruft around.  Clean up after them.
     addPass(Passes, createInstructionCombiningPass());
-
+    addPass(Passes, createJumpThreadingPass());        // Thread jumps.
     addPass(Passes, createScalarReplAggregatesPass()); // Break up allocas
 
     // Run a few AA driven optimizations here and now, to cleanup the code.
@@ -170,11 +170,14 @@ void Optimize(Module* M) {
 
     addPass(Passes, createLICMPass());               // Hoist loop invariants
     addPass(Passes, createGVNPass());                  // Remove redundancies
+    addPass(Passes, createMemCpyOptPass());          // Remove dead memcpy's
     addPass(Passes, createDeadStoreEliminationPass()); // Nuke dead stores
 
     // Cleanup and simplify the code after the scalar optimizations.
     addPass(Passes, createInstructionCombiningPass());
 
+    addPass(Passes, createJumpThreadingPass());        // Thread jumps.
+
     // Delete basic blocks, which optimization passes may have killed...
     addPass(Passes, createCFGSimplificationPass());
 
@@ -209,7 +212,7 @@ void Optimize(Module* M) {
   }
 
   // Make sure everything is still good.
-  if(!DontVerify)
+  if (!DontVerify)
     Passes.add(createVerifierPass());
 
   // Run our queue of passes all at once now, efficiently.