Enable runtime unrolling with unroll pragma metadata
authorMark Heffernan <meheff@google.com>
Mon, 13 Jul 2015 18:26:27 +0000 (18:26 +0000)
committerMark Heffernan <meheff@google.com>
Mon, 13 Jul 2015 18:26:27 +0000 (18:26 +0000)
commitd7ebc24112a73b90b0cff0c7beea3dcc9cd81bdd
tree458397018da2ee0cd19899e379dfa9e549843301
parent857237ee70b8689d6c5e5976ae1873fc425cb3ad
Enable runtime unrolling with unroll pragma metadata

Enable runtime unrolling for loops with unroll count metadata ("#pragma unroll N")
and a runtime trip count. Also, do not unroll loops with unroll full metadata if the
loop has a runtime loop count. Previously, such loops would be unrolled with a
very large threshold (pragma-unroll-threshold) if runtime unrolled happened to be
enabled resulting in a very large (and likely unwise) unroll factor.

llvm-svn: 242047
llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll