Update lang ref.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_35@216950 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2014-09-02 21:21:48 +00:00
parent 1d7b9f52b5
commit 608c4d80d0

View File

@ -2902,15 +2902,15 @@ constructs:
The loop identifier metadata can be used to specify additional
per-loop metadata. Any operands after the first operand can be treated
as user-defined metadata. For example the ``llvm.loop.unroll.count``
suggests an unroll factor to the loop unroller:
as user-defined metadata. For example the ``llvm.loop.interleave.count``
suggests an interleave factor to the loop interleaver:
.. code-block:: llvm
br i1 %exitcond, label %._crit_edge, label %.lr.ph, !llvm.loop !0
...
!0 = metadata !{ metadata !0, metadata !1 }
!1 = metadata !{ metadata !"llvm.loop.unroll.count", i32 4 }
!1 = metadata !{ metadata !"llvm.loop.interleave.count", i32 4 }
'``llvm.loop.vectorize``' and '``llvm.loop.interleave``'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -2970,52 +2970,6 @@ vectorization of the loop. If ``llvm.loop.vectorize.width`` is set to
0 or if the loop does not have this metadata the width will be
determined automatically.
'``llvm.loop.unroll``'
^^^^^^^^^^^^^^^^^^^^^^
Metadata prefixed with ``llvm.loop.unroll`` are loop unrolling
optimization hints such as the unroll factor. ``llvm.loop.unroll``
metadata should be used in conjunction with ``llvm.loop`` loop
identification metadata. The ``llvm.loop.unroll`` metadata are only
optimization hints and the unrolling will only be performed if the
optimizer believes it is safe to do so.
'``llvm.loop.unroll.enable``' Metadata
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This metadata either disables loop unrolling or suggests that the loop
be unrolled fully. The first operand is the string
``llvm.loop.unroll.enable`` and the second operand is a bit. If the
bit operand value is 0 loop unrolling is disabled. A value of 1
indicates that the loop should be fully unrolled. For example:
.. code-block:: llvm
!0 = metadata !{ metadata !"llvm.loop.unroll.enable", i1 0 }
!1 = metadata !{ metadata !"llvm.loop.unroll.enable", i1 1 }
'``llvm.loop.unroll.count``' Metadata
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This metadata suggests an unroll factor to the loop unroller. The
first operand is the string ``llvm.loop.unroll.count`` and the second
operand is a positive integer specifying the unroll factor. For
example:
.. code-block:: llvm
!0 = metadata !{ metadata !"llvm.loop.unroll.count", i32 4 }
If the trip count of the loop is less than the unroll count the loop
will be partially unrolled.
If a loop has both a ``llvm.loop.unroll.enable`` metadata and
``llvm.loop.unroll.count`` metadata the behavior depends upon the
value of the ``llvm.loop.unroll.enable`` operand. If the value is 0,
the loop will not be unrolled. If the value is 1, the loop will be
unrolled with a factor determined by the ``llvm.loop.unroll.count``
operand effectively ignoring the ``llvm.loop.unroll.enable`` metadata.
'``llvm.mem``'
^^^^^^^^^^^^^^^