[llvm-branch-commits] [flang] [mlir] [mlir][OpenMP][flang] make private variable allocation implicit in omp.private (PR #124019)
Kareem Ergawy via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Jan 23 03:33:43 PST 2025
================
@@ -20,25 +20,42 @@ namespace mlir {
class Region;
} // namespace mlir
+namespace Fortran {
+namespace semantics {
+class Symbol;
+} // namespace semantics
+} // namespace Fortran
+
namespace fir {
class FirOpBuilder;
class ShapeShiftOp;
} // namespace fir
namespace Fortran {
namespace lower {
+class AbstractConverter;
+
namespace omp {
+enum class DeclOperationKind { Private, FirstPrivate, Reduction };
+inline bool isPrivatization(DeclOperationKind kind) {
+ return (kind == DeclOperationKind::FirstPrivate) ||
+ (kind == DeclOperationKind::Private);
+}
+inline bool isReduction(DeclOperationKind kind) {
+ return kind == DeclOperationKind::Reduction;
+}
+
/// Generate init and cleanup regions suitable for reduction or privatizer
/// declarations. `scalarInitValue` may be nullptr if there is no default
-/// initialization (for privatization).
-void populateByRefInitAndCleanupRegions(fir::FirOpBuilder &builder,
- mlir::Location loc, mlir::Type argType,
- mlir::Value scalarInitValue,
- mlir::Block *initBlock,
- mlir::Value allocatedPrivVarArg,
- mlir::Value moldArg,
- mlir::Region &cleanupRegion);
+/// initialization (for privatization). If this is for a privatizer, set
+/// `isPrivate` to `true`.
----------------
ergawy wrote:
I think this needs to be updated to refer to `kind`?
https://github.com/llvm/llvm-project/pull/124019
More information about the llvm-branch-commits
mailing list