Introduce runtime unrolling disable matadata and use it to mark the scalar loop from...
authorKevin Qin <Kevin.Qin@arm.com>
Mon, 9 Mar 2015 06:14:18 +0000 (06:14 +0000)
committerKevin Qin <Kevin.Qin@arm.com>
Mon, 9 Mar 2015 06:14:18 +0000 (06:14 +0000)
commit994b4c784fa3d63c90b19fd48e522fc6ff3247e7
tree2e9dabc2eebd25ab430b5198eb30260faf3ea6aa
parent3836dd03155be5cd57bd301a1c6458f7524d2bd8
Introduce runtime unrolling disable matadata and use it to mark the scalar loop from vectorization.

Runtime unrolling is an expensive optimization which can bring benefit
only if the loop is hot and iteration number is relatively large enough.
For some loops, we know they are not worth to be runtime unrolled.
The scalar loop from vectorization is one of the cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231631 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
lib/Transforms/Scalar/LoopUnrollPass.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopUnroll/runtime-loop.ll
test/Transforms/LoopVectorize/X86/already-vectorized.ll
test/Transforms/LoopVectorize/vectorize-once.ll