summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorManuel Jacob <me@manueljacob.de>2016-06-02 22:14:26 +0000
committerManuel Jacob <me@manueljacob.de>2016-06-02 22:14:26 +0000
commita485984c0c88bbcc490000660a1f30bed13be144 (patch)
tree30d4295fcf27ebf313eb93b4b49a7d843764ee8e /llvm/lib/Transforms
parent6dfdbf1f4628be15f0e7963283a9bc60ae562359 (diff)
downloadbcm5719-llvm-a485984c0c88bbcc490000660a1f30bed13be144.tar.gz
bcm5719-llvm-a485984c0c88bbcc490000660a1f30bed13be144.zip
[PM] Schedule InstSimplify after late LICM run, to clean up LCSSA nodes.
Summary: The module pass pipeline includes a late LICM run after loop unrolling. LCSSA is implicitly run as a pass dependency of LICM. However no cleanup pass was run after this, so the LCSSA nodes ended in the optimized output. Reviewers: hfinkel, mehdi_amini Subscribers: majnemer, bruno, mzolotukhin, mehdi_amini, llvm-commits Differential Revision: http://reviews.llvm.org/D20606 llvm-svn: 271602
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/IPO/PassManagerBuilder.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
index 96282171c9f..6397915da1c 100644
--- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
+++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
@@ -542,6 +542,9 @@ void PassManagerBuilder::populateModulePassManager(
// outer loop. LICM pass can help to promote the runtime check out if the
// checked value is loop invariant.
MPM.add(createLICMPass());
+
+ // Get rid of LCSSA nodes.
+ MPM.add(createInstructionSimplifierPass());
}
// After vectorization and unrolling, assume intrinsics may tell us more
OpenPOWER on IntegriCloud