]> granicus.if.org Git - clang/commitdiff
[docs] loop pragmas: options implying transformations
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 14 Oct 2019 07:40:36 +0000 (07:40 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 14 Oct 2019 07:40:36 +0000 (07:40 +0000)
Following our discussion on the cfe dev list:
http://lists.llvm.org/pipermail/cfe-dev/2019-August/063054.html,
I have added a paragraph that is explicit about loop pragmas, and
transformation options implying the corresponding transformation.

Differential Revision: https://reviews.llvm.org/D66199

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@374756 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LanguageExtensions.rst

index 903d45005927a76e95dcc3e3f99e4964a400879b..967f4ad9bb9108e4c522d9c5989dc307f51faab0 100644 (file)
@@ -3027,6 +3027,14 @@ provides options for vectorization, interleaving, predication, unrolling and
 distribution. Loop hints can be specified before any loop and will be ignored if
 the optimization is not safe to apply.
 
+There are loop hints that control transformations (e.g. vectorization, loop
+unrolling) and there are loop hints that set transformation options (e.g.
+``vectorize_width``, ``unroll_count``).  Pragmas setting transformation options
+imply the transformation is enabled, as if it was enabled via the corresponding
+transformation pragma (e.g. ``vectorize(enable)``). If the transformation is
+disabled  (e.g. ``vectorize(disable)``), that takes precedence over
+transformations option pragmas implying that transformation.
+
 Vectorization, Interleaving, and Predication
 --------------------------------------------