[PATCH] D55710: add pragmas to control Software Pipelining optimisation
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 31 07:06:13 PST 2018
aaron.ballman added a comment.
The docs are getting much closer -- just a few grammatical things left to fix, I believe.
================
Comment at: include/clang/Basic/AttrDocs.td:2582
specified for the subsequent 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
-`language extensions
+interleaving, and unrolling to be enabled or disabled. Pipelining could be disabled.
+Vector width, interleave count, unrolling count, and the initiation interval for pipelining
----------------
Can you combine the new sentence with the previous one? `The directive allows vectorization, interleaving, pipelining, and unrolling to be enabled or disabled.`
================
Comment at: include/clang/Basic/AttrDocs.td:2657
+ is the number of cycles between two iterations of an unoptimized loop in
+ newly created schedule. New optimized loop is created such that a single iteration
+ of the loop executes in the same number of cycles as the initiation interval.
----------------
in newly created schedule -> in the newly created schedule
New optimized loop -> A new, optimized loop
================
Comment at: include/clang/Basic/AttrDocs.td:2662
+ ``#pragma clang loop pipeline and #pragma loop pipeline_initiation_interval``
+ could be used as hints for Software Pipelining optimization. The pragma is
+ placed immediately before a for, while, do-while, or c++11 range-based for
----------------
for Software Pipelining optimization. -> for the software pipelining optimization.
================
Comment at: include/clang/Basic/AttrDocs.td:2663
+ could be used as hints for Software Pipelining optimization. The pragma is
+ placed immediately before a for, while, do-while, or c++11 range-based for
+ loop.
----------------
or c++11 range-based for loop. -> or a C++11 range-based for loop.
================
Comment at: include/clang/Basic/AttrDocs.td:2666
+
+ Using ``#pragma clang loop pipeline(disable)`` avoids software pipelining
+ optimization. The disable state can only be specified:
----------------
avoids software -> avoids the software
================
Comment at: include/clang/Basic/AttrDocs.td:2678
+ the software pipeliner to try the specified initiation interval.
+ If schedule was found then the resulting loop iteration would have
+ specified cycle count. If schedule was not found then loop would stay
----------------
If schedule was found -> If a schedule was found
================
Comment at: include/clang/Basic/AttrDocs.td:2679
+ If schedule was found then the resulting loop iteration would have
+ specified cycle count. If schedule was not found then loop would stay
+ unchanged. The initiation interval must be a positive number
----------------
would have specified cycle count. -> would have the specified cycle count.
If schedule was not -> If a schedule was not
would stay -> remains
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55710/new/
https://reviews.llvm.org/D55710
More information about the cfe-commits
mailing list