diff options
| author | Gerolf Hoflehner <ghoflehner@apple.com> | 2014-07-03 19:28:15 +0000 |
|---|---|---|
| committer | Gerolf Hoflehner <ghoflehner@apple.com> | 2014-07-03 19:28:15 +0000 |
| commit | 65b13324e1f2b21c69c023996df36a6d21f5f8d3 (patch) | |
| tree | a9eba2323a529ffaed86578eb6abca913b19f7f7 /llvm | |
| parent | 99a664a84f95cfd7a1e636833599ce50fe08de02 (diff) | |
| download | bcm5719-llvm-65b13324e1f2b21c69c023996df36a6d21f5f8d3.tar.gz bcm5719-llvm-65b13324e1f2b21c69c023996df36a6d21f5f8d3.zip | |
Run interprocedural const prop before global optimizer
Exposes more constant globals that can be removed by
the global optimizer. A specific example is the removal
of the static global block address array in
clang/test/CodeGen/indirect-goto.c. This change impacts only
lower optimization levels. With LTO interprocedural
const prop runs already before global opt.
llvm-svn: 212284
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index c20c717de5e..46a3187f743 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -156,9 +156,9 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) { if (!DisableUnitAtATime) { addExtensionsToPM(EP_ModuleOptimizerEarly, MPM); + MPM.add(createIPSCCPPass()); // IP SCCP MPM.add(createGlobalOptimizerPass()); // Optimize out global vars - MPM.add(createIPSCCPPass()); // IP SCCP MPM.add(createDeadArgEliminationPass()); // Dead argument elimination MPM.add(createInstructionCombiningPass());// Clean up after IPCP & DAE |

