diff options
author | Manuel Jacob <me@manueljacob.de> | 2016-06-02 22:14:26 +0000 |
---|---|---|
committer | Manuel Jacob <me@manueljacob.de> | 2016-06-02 22:14:26 +0000 |
commit | a485984c0c88bbcc490000660a1f30bed13be144 (patch) | |
tree | 30d4295fcf27ebf313eb93b4b49a7d843764ee8e /llvm/lib/Transforms | |
parent | 6dfdbf1f4628be15f0e7963283a9bc60ae562359 (diff) | |
download | bcm5719-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.cpp | 3 |
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 |