From: Chris Lattner Date: Tue, 27 Jul 2004 08:13:15 +0000 (+0000) Subject: Run DSE at link-time, and turn on an IP alias analysis by default in gccld! X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=2d26ffb6791978f23ffa2d81a84f6478ee016cd8;p=oota-llvm.git Run DSE at link-time, and turn on an IP alias analysis by default in gccld! The -disable-globalsmodref is temporary and will be removed eventually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15268 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp index d186f745e1f..74576bb1ba3 100644 --- a/tools/gccld/GenerateCode.cpp +++ b/tools/gccld/GenerateCode.cpp @@ -17,6 +17,7 @@ #include "llvm/Module.h" #include "llvm/PassManager.h" #include "llvm/Analysis/LoadValueNumbering.h" +#include "llvm/Analysis/Passes.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Bytecode/WriteBytecodePass.h" #include "llvm/Target/TargetData.h" @@ -37,6 +38,9 @@ namespace { cl::opt DisableOptimizations("disable-opt", cl::desc("Do not run any optimization passes")); + cl::opt + 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 @@ -196,11 +200,13 @@ 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. - // Eventually we should put an IP AA in place here. + if (!DisableGlobalsModRef) + addPass(Passes, createGlobalsModRefPass()); // IP alias analysis addPass(Passes, createLICMPass()); // Hoist loop invariants addPass(Passes, createLoadValueNumberingPass()); // GVN for load instrs addPass(Passes, createGCSEPass()); // Remove common subexprs + addPass(Passes, createDeadStoreEliminationPass()); // Nuke dead stores // Cleanup and simplify the code after the scalar optimizations. addPass(Passes, createInstructionCombiningPass());