This patch extends the LoopUnroll pass to be able to unroll loops
authorDan Gohman <gohman@apple.com>
Fri, 11 May 2007 20:53:41 +0000 (20:53 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 11 May 2007 20:53:41 +0000 (20:53 +0000)
commitc767844fc9238d504f2fad3a335163ce040fefc4
tree7bd3d1a530e0db3da2b762c4aabefb133494e9cc
parent3aea1bdca59629bd3031f62b52e2ad353b992b2b
This patch extends the LoopUnroll pass to be able to unroll loops
with unknown trip counts. This is left off by default, and a
command-line option enables it. It also begins to separate loop
unrolling into a utility routine; eventually it might be made usable
from other passes.

It currently works by inserting conditional branches between each
unrolled iteration, unless it proves that the trip count is a
multiple of a constant integer > 1, which it currently only does in
the rare case that the trip count expression is a Mul operator with
a ConstantInt operand. Eventually this information might be provided
by other sources, for example by a pass that peels/splits the loop
for this purpose.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36990 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/LoopUnroll.cpp