diff options
author | Bill Wendling <isanbard@gmail.com> | 2014-09-02 21:29:19 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2014-09-02 21:29:19 +0000 |
commit | d355b771d6e0ff9638aed38b9289f70642857f5d (patch) | |
tree | ef5c6b7d741394b5d1d604a1164765591a2f3255 | |
parent | Update release notes. (diff) | |
download | llvm-project-llvmorg-3.5.0.tar.gz llvm-project-llvmorg-3.5.0.tar.bz2 llvm-project-llvmorg-3.5.0.zip |
Update docs.llvmorg-3.5.0
llvm-svn: 216954
-rw-r--r-- | clang/docs/LanguageExtensions.rst | 48 | ||||
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 14 |
2 files changed, 5 insertions, 57 deletions
diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index fd55c4c39974..35f759f4cf97 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -1787,12 +1787,8 @@ Extensions for loop hint optimizations The ``#pragma clang loop`` directive is used to specify hints for optimizing the subsequent for, while, do-while, or c++11 range-based for loop. The directive -provides options for vectorization, interleaving, and unrolling. Loop hints can -be specified before any loop and will be ignored if the optimization is not safe -to apply. - -Vectorization and Interleaving ------------------------------- +provides options for vectorization and interleaving. Loop hints can be specified +before any loop and will be ignored if the optimization is not safe to apply. A vectorized loop performs multiple iterations of the original loop in parallel using vector instructions. The instruction set of the target @@ -1835,46 +1831,6 @@ width/count of the set of target architectures supported by your application. Specifying a width/count of 1 disables the optimization, and is equivalent to ``vectorize(disable)`` or ``interleave(disable)``. -Loop Unrolling --------------- - -Unrolling a loop reduces the loop control overhead and exposes more -opportunities for ILP. Loops can be fully or partially unrolled. Full unrolling -eliminates the loop and replaces it with an enumerated sequence of loop -iterations. Full unrolling is only possible if the loop trip count is known at -compile time. Partial unrolling replicates the loop body within the loop and -reduces the trip count. - -If ``unroll(enable)`` is specified the unroller will attempt to fully unroll the -loop if the trip count is known at compile time. If the loop count is not known -or the fully unrolled code size is greater than the limit specified by the -`-pragma-unroll-threshold` command line option the loop will be partially -unrolled subject to the same limit. - -.. code-block:: c++ - - #pragma clang loop unroll(enable) - for(...) { - ... - } - -The unroll count can be specified explicitly with ``unroll_count(_value_)`` where -_value_ is a positive integer. If this value is greater than the trip count the -loop will be fully unrolled. Otherwise the loop is partially unrolled subject -to the `-pragma-unroll-threshold` limit. - -.. code-block:: c++ - - #pragma clang loop unroll_count(8) - for(...) { - ... - } - -Unrolling of a loop can be prevented by specifying ``unroll(disable)``. - -Additional Information ----------------------- - For convenience multiple loop hints can be specified on a single line. .. code-block:: c++ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index c141c845eba3..dc1c88b6fb3c 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -184,17 +184,9 @@ New Pragmas in Clang ----------------------- Loop optimization hints can be specified using the new `#pragma clang loop` -directive just prior to the desired loop. The directive allows vectorization, -interleaving, and unrolling to be enabled or disabled. Vector width as well -as interleave and unrolling count can be manually specified. See -:ref:`langext-pragma-loop` for details. - -Clang now supports the `#pragma unroll` directive to specify loop unrolling -optimization hints. Placed just prior to the desired loop, `#pragma unroll` -directs the loop unroller to attempt to fully unroll the loop. The pragma may -also be specified with a positive integer parameter indicating the desired -unroll count: `#pragma unroll _value_`. The unroll count parameter can be -optionally enclosed in parentheses. +directive just prior to the desired loop. The directive allows vectorization and +interleaving to be enabled or disabled. Vector width as well as interleave count +can be manually specified. See :ref:`langext-pragma-loop` for details. C Language Changes in Clang --------------------------- |