summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorGerolf Hoflehner <ghoflehner@apple.com>2014-07-03 19:28:15 +0000
committerGerolf Hoflehner <ghoflehner@apple.com>2014-07-03 19:28:15 +0000
commit65b13324e1f2b21c69c023996df36a6d21f5f8d3 (patch)
treea9eba2323a529ffaed86578eb6abca913b19f7f7 /llvm
parent99a664a84f95cfd7a1e636833599ce50fe08de02 (diff)
downloadbcm5719-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.cpp2
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
OpenPOWER on IntegriCloud