diff options
author | Nadav Rotem <nrotem@apple.com> | 2013-01-04 17:49:45 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2013-01-04 17:49:45 +0000 |
commit | 4aa55bbafa42de26e094b9449af0d1f5353440ce (patch) | |
tree | 4ac8eb45b2eb8bdc0b9920e2110216e1cf2341b1 /docs/Vectorizers.rst | |
parent | e503319874f57ab4a0354521b03a71cf8e07b866 (diff) |
Update the docs about the new unroll features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171470 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/Vectorizers.rst')
-rw-r--r-- | docs/Vectorizers.rst | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/docs/Vectorizers.rst b/docs/Vectorizers.rst index d679ca4954..bbf337cec9 100644 --- a/docs/Vectorizers.rst +++ b/docs/Vectorizers.rst @@ -35,6 +35,27 @@ will only vectorize loops that do not require a major increase in code size. We plan to enable the Loop Vectorizer by default as part of the LLVM 3.3 release. +Command line flags +^^^^^^^^^^^^^^^^^^ + +The loop vectorizer uses a cost model to decide on the optimal vectorization factor +and unroll factor. However, users of the vectorizer can force the vectorizer to use +specific values. Both 'clang' and 'opt' support the flags below. + +Users can control the vectorization SIMD width using the command line flag "-force-vector-width". + +.. code-block:: console + + $ clang -mllvm -force-vector-width=8 ... + $ opt -loop-vectorize -force-vector-width=8 ... + +Users can control the unroll factor using the command line flag "-force-vector-unroll" + +.. code-block:: console + + $ clang -mllvm -force-vector-unroll=2 ... + $ opt -loop-vectorize -force-vector-unroll=2 ... + Features -------- @@ -226,13 +247,8 @@ to be used simultaneously. return sum; } -At the moment the unrolling feature is not enabled by default and needs to be enabled -in opt or clang using the following flag: - -.. code-block:: console - - -force-vector-unroll=2 - +The Loop Vectorizer uses a cost model to decide when it is profitable to unroll loops. +The decision to unroll the loop depends on the register pressure and the generated code size. Performance ----------- |