[clang] [llvm] [Clang] [OpenMP] Add support for '#pragma omp stripe'. (PR #119891)

Ernesto Su via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 11:52:37 PST 2025


================
@@ -5621,6 +5623,81 @@ class OMPTileDirective final : public OMPLoopTransformationDirective {
   }
 };
 
+class OMPStripeDirective final : public OMPLoopTransformationDirective {
+  friend class ASTStmtReader;
+  friend class OMPExecutableDirective;
+
+  /// Default list of offsets.
+  enum {
+    PreInitsOffset = 0,
+    TransformedStmtOffset,
+  };
+
+  explicit OMPStripeDirective(SourceLocation StartLoc, SourceLocation EndLoc,
+                              unsigned NumLoops)
+      : OMPLoopTransformationDirective(OMPStripeDirectiveClass,
+                                       llvm::omp::OMPD_stripe, StartLoc, EndLoc,
+                                       NumLoops) {
+    setNumGeneratedLoops(3 * NumLoops);
----------------
ErnestoSu wrote:

A `tile` or `stripe` construct that takes N loops will result in a loop nest of 2*N loops.

I don't know what `setNumGeneratedLoops()` does though, so it may or may not be related to the above.

https://github.com/llvm/llvm-project/pull/119891


More information about the llvm-commits mailing list