projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Put RTDyldMemoryManager into its own file, and make it linked into
[oota-llvm.git]
/
docs
/
Vectorizers.rst
diff --git
a/docs/Vectorizers.rst
b/docs/Vectorizers.rst
index 693a148fa547aaefedc28fe920dacfd216833155..d565c2122c9a0be711abf71411ec2c4f5fa28b9c 100644
(file)
--- a/
docs/Vectorizers.rst
+++ b/
docs/Vectorizers.rst
@@
-6,10
+6,10
@@
Auto-Vectorization in LLVM
:local:
LLVM has two vectorizers: The :ref:`Loop Vectorizer <loop-vectorizer>`,
:local:
LLVM has two vectorizers: The :ref:`Loop Vectorizer <loop-vectorizer>`,
-which operates on Loops, and the :ref:`
Basic Block
Vectorizer
-<
bb
-vectorizer>`, which optimizes straight-line code. These vectorizers
+which operates on Loops, and the :ref:`
SLP
Vectorizer
+<
slp
-vectorizer>`, which optimizes straight-line code. These vectorizers
focus on different optimization opportunities and use different techniques.
focus on different optimization opportunities and use different techniques.
-The
BB
vectorizer merges multiple scalars that are found in the code into
+The
SLP
vectorizer merges multiple scalars that are found in the code into
vectors while the Loop Vectorizer widens instructions in the original loop
to operate on multiple consecutive loop iterations.
vectors while the Loop Vectorizer widens instructions in the original loop
to operate on multiple consecutive loop iterations.
@@
-22,6
+22,7
@@
Usage
-----
LLVM's Loop Vectorizer is now enabled by default for -O3.
-----
LLVM's Loop Vectorizer is now enabled by default for -O3.
+We plan to enable parts of the Loop Vectorizer on -O2 and -Os in future releases.
The vectorizer can be disabled using the command line:
.. code-block:: console
The vectorizer can be disabled using the command line:
.. code-block:: console
@@
-317,6
+318,8
@@
into vector operations.
A[1] = a2*(a2 + b2)/b2 + 50*b2/a2;
}
A[1] = a2*(a2 + b2)/b2 + 50*b2/a2;
}
+The SLP-vectorizer has two phases, bottom-up, and top-down. The top-down vectorization
+phase is more aggressive, but takes more time to run.
Usage
------
Usage
------
@@
-328,7
+331,7
@@
through clang using the command line flag:
$ clang -fslp-vectorize file.c
$ clang -fslp-vectorize file.c
-LLVM has a second
phase
basic block vectorization phase
+LLVM has a second basic block vectorization phase
which is more compile-time intensive (The BB vectorizer). This optimization
can be enabled through clang using the command line flag:
which is more compile-time intensive (The BB vectorizer). This optimization
can be enabled through clang using the command line flag: