[llvm-branch-commits] [flang] [flang] Lower omp.workshare to other omp constructs (PR #101446)
Tom Eccles via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Aug 1 03:34:55 PDT 2024
================
@@ -0,0 +1,18 @@
+//===-- Passes.td - HLFIR pass definition file -------------*- tablegen -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef FORTRAN_DIALECT_OPENMP_PASSES
+#define FORTRAN_DIALECT_OPENMP_PASSES
+
+include "mlir/Pass/PassBase.td"
+
+def LowerWorkshare : Pass<"lower-workshare"> {
----------------
tblah wrote:
This pass doesn't have an operation type associated with it and so `pm.addPass` will run it on every operation in the module (and the module itself). I think we can only get workshare operations inside of functions so maybe this should be run on func.func. Maybe for more future proofing you could run it on all top level operations (e.g. `addNestedPassToAllTopLevelOperations` instead of `pm.addPass`).
I think the pass has to be run on the parent of the workshare loop not on the workshare loop operation itself because operations are inserted and removed from that parent.
https://github.com/llvm/llvm-project/pull/101446
More information about the llvm-branch-commits
mailing list