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)
commit3836dd03155be5cd57bd301a1c6458f7524d2bd8
tree42805a5928754e32551e1b2f93c096fca270d7bf
parent4c8f5afd99a18ab81efe12b1fb26b150728a332d
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231630 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/PassManagerBuilder.cpp
lib/Transforms/Utils/LoopUnrollRuntime.cpp
test/Transforms/LoopUnroll/runtime-loop4.ll [new file with mode: 0644]