[ARM] Allow unrolling of multi-block loops.
authorSam Parker <sam.parker@arm.com>
Mon, 23 Oct 2017 08:05:14 +0000 (08:05 +0000)
committerSam Parker <sam.parker@arm.com>
Mon, 23 Oct 2017 08:05:14 +0000 (08:05 +0000)
commit487ab869422b1eb7be932eb70445d9d0541fdce1
tree0693ef28145a9fda9451893d28f9fc81d5a32b43
parent01e3bf8afd7ff515d44e5bcdc88e360af5da324a
[ARM] Allow unrolling of multi-block loops.

Before, loop unrolling was only enabled for loops with a single
block. This restriction has been removed and replaced by:
- allow a maximum of two exiting blocks,
- a four basic block limit for cores with a branch predictor.

Differential Revision: https://reviews.llvm.org/D38952

llvm-svn: 316313
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
llvm/test/Transforms/LoopUnroll/ARM/multi-blocks.ll [new file with mode: 0644]