aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-10-23 18:25:57 +0000
committerChris Lattner <sabre@nondot.org>2003-10-23 18:25:57 +0000
commiteaa35bb794fc45df83fef6eada35783739a4030f (patch)
treeeff79d82aeb3a5d1e545fdbbf2c75331ddd1ece6
parentaf19f2e52c17a9bd91130d5dd0451fef477575e0 (diff)
Turn on the IPCP pass by default. It has passed all of the tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9435 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/gccas/gccas.cpp4
-rw-r--r--tools/gccld/GenerateCode.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp
index 6799ed6d6b..d97c716da1 100644
--- a/tools/gccas/gccas.cpp
+++ b/tools/gccas/gccas.cpp
@@ -56,8 +56,12 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
PM.add(createVerifierPass()); // Verify that input is correct
addPass(PM, createLowerSetJmpPass()); // Lower llvm.setjmp/.longjmp
addPass(PM, createFunctionResolvingPass()); // Resolve (...) functions
+ addPass(PM, createCFGSimplificationPass()); // Clean up disgusting code
addPass(PM, createRaiseAllocationsPass()); // call %malloc -> malloc inst
addPass(PM, createGlobalDCEPass()); // Remove unused globals
+ addPass(PM, createIPConstantPropagationPass());// IP Constant Propagation
+ addPass(PM, createDeadArgEliminationPass()); // Dead argument elimination
+
addPass(PM, createPruneEHPass()); // Remove dead EH info
if (!DisableInline)
diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp
index d1a009b411..ef07287731 100644
--- a/tools/gccld/GenerateCode.cpp
+++ b/tools/gccld/GenerateCode.cpp
@@ -68,6 +68,9 @@ GenerateBytecode (Module *M, bool Strip, bool Internalize, std::ostream *Out) {
Passes.add(createInternalizePass());
}
+ // Propagate constants at call sites into the functions they call.
+ Passes.add(createIPConstantPropagationPass());
+
// Remove unused arguments from functions...
Passes.add(createDeadArgEliminationPass());