diff options
author | Filipe Cabecinhas <me@filcab.net> | 2017-04-26 12:02:41 +0000 |
---|---|---|
committer | Filipe Cabecinhas <me@filcab.net> | 2017-04-26 12:02:41 +0000 |
commit | 92dc348773747f9a43f010c2401b53ecc0456466 (patch) | |
tree | cdf1a28fbda2c35cffd0ee1382b27da189664225 /llvm/lib/Transforms | |
parent | b458b468a249eed55d37a7bc1a994bf6257921da (diff) | |
download | bcm5719-llvm-92dc348773747f9a43f010c2401b53ecc0456466.tar.gz bcm5719-llvm-92dc348773747f9a43f010c2401b53ecc0456466.zip |
Simplify the CFG after loop pass cleanup.
Summary:
Otherwise we might end up with some empty basic blocks or
single-entry-single-exit basic blocks.
This fixes PR32085
Reviewers: chandlerc, danielcdh
Subscribers: mehdi_amini, RKSimon, llvm-commits
Differential Revision: https://reviews.llvm.org/D30468
llvm-svn: 301395
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 50159783334..0d5910ebbfc 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -680,6 +680,11 @@ void PassManagerBuilder::populateModulePassManager( MPM.add(createLoopSinkPass()); // Get rid of LCSSA nodes. MPM.add(createInstructionSimplifierPass()); + + // LoopSink (and other loop passes since the last simplifyCFG) might have + // resulted in single-entry-single-exit or empty blocks. Clean up the CFG. + MPM.add(createCFGSimplificationPass()); + addExtensionsToPM(EP_OptimizerLast, MPM); } |