aboutsummaryrefslogtreecommitdiff
path: root/tools/gccas/gccas.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gccas/gccas.cpp')
-rw-r--r--tools/gccas/gccas.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp
index fae4ddb205..2791cf4df2 100644
--- a/tools/gccas/gccas.cpp
+++ b/tools/gccas/gccas.cpp
@@ -103,11 +103,12 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs
addPass(PM, createScalarReplAggregatesPass()); // Break up aggregate allocas
addPass(PM, createInstructionCombiningPass()); // Combine silly seq's
+ addPass(PM, createCondPropagationPass()); // Propagate conditionals
addPass(PM, createTailCallEliminationPass()); // Eliminate tail calls
addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs
- addPass(PM, createLICMPass()); // Hoist loop invariants
addPass(PM, createReassociatePass()); // Reassociate expressions
+ addPass(PM, createLICMPass()); // Hoist loop invariants
addPass(PM, createInstructionCombiningPass()); // Clean up after LICM/reassoc
addPass(PM, createIndVarSimplifyPass()); // Canonicalize indvars
addPass(PM, createLoopUnrollPass()); // Unroll small loops
@@ -119,6 +120,8 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
// Run instcombine after redundancy elimination to exploit opportunities
// opened up by them.
addPass(PM, createInstructionCombiningPass());
+ addPass(PM, createCondPropagationPass()); // Propagate conditionals
+
addPass(PM, createDeadStoreEliminationPass()); // Delete dead stores
addPass(PM, createAggressiveDCEPass()); // SSA based 'Aggressive DCE'
addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs