Run LICM pass after loop unrolling pass.
authorKevin Qin <Kevin.Qin@arm.com>
Mon, 9 Mar 2015 06:14:07 +0000 (06:14 +0000)
committerKevin Qin <Kevin.Qin@arm.com>
Mon, 9 Mar 2015 06:14:07 +0000 (06:14 +0000)
commita998735def5f04459fa6cbeaaffbb42f1a1dec5c
tree82a5ff86e24b5e27caffbb29b94df869abb4974a
parent7b68b90c159924f76d25fadf43ff72469b7ba573
Run LICM pass after loop unrolling pass.

Runtime unrollng will introduce a runtime check in loop prologue.
If the unrolled loop is a inner loop, then the proglogue will be inside
the outer loop. LICM pass can help to promote the runtime check out if
the checked value is loop invariant.

llvm-svn: 231630
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
llvm/test/Transforms/LoopUnroll/runtime-loop4.ll [new file with mode: 0644]