diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2013-01-29 00:22:49 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2013-01-29 00:22:49 +0000 |
| commit | bf4db4fe1194560d99d5b968d1478789a610e71f (patch) | |
| tree | 6611fd4b439d8041a6a909a2fbbaa0350a19be44 /llvm/lib | |
| parent | 7f9e8d3eaaffeb711a5e9e4844622842525b8eb2 (diff) | |
| download | bcm5719-llvm-bf4db4fe1194560d99d5b968d1478789a610e71f.tar.gz bcm5719-llvm-bf4db4fe1194560d99d5b968d1478789a610e71f.zip | |
Unroll again after running BBVectorize
Because BBVectorize may significantly shorten a loop body, unroll
again after vectorization. This is especially important when using
runtime or partial unrolling.
llvm-svn: 173730
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 6dc17737785..47b2b51899c 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -214,6 +214,10 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) { MPM.add(createGVNPass()); // Remove redundancies else MPM.add(createEarlyCSEPass()); // Catch trivial redundancies + + // BBVectorize may have significantly shortened a loop body; unroll again. + if (!DisableUnrollLoops) + MPM.add(createLoopUnrollPass()); } MPM.add(createAggressiveDCEPass()); // Delete dead instructions |

