summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2013-01-04 17:49:45 +0000
committerNadav Rotem <nrotem@apple.com>2013-01-04 17:49:45 +0000
commit7daadf21fe976bfa9ea9c90bb8d1f29c8e543b6d (patch)
tree33c9dd049a1328c2f06a8b76cb349426428f58de
parente1d5c4b8b9cc0070d0793b7865f6d3125eecdd94 (diff)
downloadbcm5719-llvm-7daadf21fe976bfa9ea9c90bb8d1f29c8e543b6d.tar.gz
bcm5719-llvm-7daadf21fe976bfa9ea9c90bb8d1f29c8e543b6d.zip
Update the docs about the new unroll features.
llvm-svn: 171470
-rw-r--r--llvm/docs/Vectorizers.rst30
1 files changed, 23 insertions, 7 deletions
diff --git a/llvm/docs/Vectorizers.rst b/llvm/docs/Vectorizers.rst
index d679ca49540..bbf337cec95 100644
--- a/llvm/docs/Vectorizers.rst
+++ b/llvm/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
-----------
OpenPOWER on IntegriCloud