[PATCH] D55710: add pragmas to control Software Pipelining optimisation

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Dec 21 11:43:41 PST 2018


aaron.ballman added inline comments.


================
Comment at: include/clang/Basic/AttrDocs.td:2650
+    Software Pipelining optimization is a technique used to optimize loops by
+  utilizing instructions level parallelism. It reorders loop instructions to
+  overlap iterations. As the result next iteration started before previous
----------------
instructions level -> instruction-level


================
Comment at: include/clang/Basic/AttrDocs.td:2651
+  utilizing instructions level parallelism. It reorders loop instructions to
+  overlap iterations. As the result next iteration started before previous
+  have finished. The Modulo Scheduling technique creates schedule for one
----------------
As a result, the next iteration starts before the previous iteration has finished.


================
Comment at: include/clang/Basic/AttrDocs.td:2652-2654
+  have finished. The Modulo Scheduling technique creates schedule for one
+  iteration such that when repeating at regular interval no inter-iteration
+  dependence violated. This constant interval(in cycles) between the start
----------------
The module scheduling technique creates a schedule for one iteration such that when repeating at regular intervals, no inter-iteration dependencies are violated.


================
Comment at: include/clang/Basic/AttrDocs.td:2655
+  dependence violated. This constant interval(in cycles) between the start
+  of iterations called initiation interval. Cycles number of one iteration
+  of newly generated loop matches with Initiation Interval. For further
----------------
is called the initiation interval.

I can't quite parse the second sentence, though. Is it trying to say that the initiation interval is the number of cycles for a single iteration of the optimized loop?


================
Comment at: include/clang/Basic/AttrDocs.td:2676
+  the software pipeliner to try the specified initiation interval.
+  If schedule found the resulting loop iteration would have specified
+  cycle count. The positive number greater than zero can be specified:
----------------
I'm can't quite parse this sentence either. Is it trying to say that the scheduler will try to find a loop iteration cycle count that most-closely matches the specified initiation interval?


================
Comment at: include/clang/Basic/AttrDocs.td:2677
+  If schedule found the resulting loop iteration would have specified
+  cycle count. The positive number greater than zero can be specified:
+
----------------
The initiation interval must be a positive number greater than zero.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55710/new/

https://reviews.llvm.org/D55710





More information about the cfe-commits mailing list