[llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp
Chris Lattner
lattner at cs.uiuc.edu
Tue Jul 27 01:13:25 PDT 2004
Changes in directory llvm/tools/gccld:
GenerateCode.cpp updated: 1.29 -> 1.30
---
Log message:
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.
---
Diffs of the changes: (+7 -1)
Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.29 llvm/tools/gccld/GenerateCode.cpp:1.30
--- llvm/tools/gccld/GenerateCode.cpp:1.29 Wed Jun 23 12:32:09 2004
+++ llvm/tools/gccld/GenerateCode.cpp Tue Jul 27 03:13:15 2004
@@ -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 @@
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
@@ -196,11 +200,13 @@
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());
More information about the llvm-commits
mailing list