[Mlir-commits] [mlir] 237a910 - [MLIR][OpenMP] Remove the ReductionClauseInterface, NFC (#130978)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Mar 13 07:50:28 PDT 2025
Author: Sergio Afonso
Date: 2025-03-13T14:50:23Z
New Revision: 237a9108190dbdd172175f914b28757345dbed76
URL: https://github.com/llvm/llvm-project/commit/237a9108190dbdd172175f914b28757345dbed76
DIFF: https://github.com/llvm/llvm-project/commit/237a9108190dbdd172175f914b28757345dbed76.diff
LOG: [MLIR][OpenMP] Remove the ReductionClauseInterface, NFC (#130978)
This patch removes the `ReductionClauseInterface` and all definitions of
its associated `getAllReductionVars` method.
The method mandated by this interface is not used anywhere and the
conflicts its definition produces when multiple reduction clauses are
present in an operation result in a more convoluted operation
definition, so it seems better to remove it and only add something like
this if there's a clear advantage to it.
Added:
Modified:
mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
index 12da584926af8..f8e880ea43b75 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
@@ -606,7 +606,7 @@ class OpenMP_InReductionClauseSkip<
> : OpenMP_Clause<traits, arguments, assemblyFormat, description,
extraClassDeclaration> {
let traits = [
- BlockArgOpenMPOpInterface, ReductionClauseInterface
+ BlockArgOpenMPOpInterface
];
let arguments = (ins
@@ -615,14 +615,6 @@ class OpenMP_InReductionClauseSkip<
OptionalAttr<SymbolRefArrayAttr>:$in_reduction_syms
);
- let extraClassDeclaration = [{
- /// Returns the reduction variables.
- SmallVector<Value> getAllReductionVars() {
- return SmallVector<Value>(getInReductionVars().begin(),
- getInReductionVars().end());
- }
- }];
-
// Description varies depending on the operation. Assembly format not defined
// because this clause must be processed together with the first region of the
// operation, as it defines entry block arguments.
@@ -1156,7 +1148,7 @@ class OpenMP_ReductionClauseSkip<
> : OpenMP_Clause<traits, arguments, assemblyFormat, description,
extraClassDeclaration> {
let traits = [
- BlockArgOpenMPOpInterface, ReductionClauseInterface
+ BlockArgOpenMPOpInterface
];
let arguments = (ins
@@ -1287,7 +1279,7 @@ class OpenMP_TaskReductionClauseSkip<
> : OpenMP_Clause<traits, arguments, assemblyFormat, description,
extraClassDeclaration> {
let traits = [
- BlockArgOpenMPOpInterface, ReductionClauseInterface
+ BlockArgOpenMPOpInterface
];
let arguments = (ins
@@ -1296,14 +1288,6 @@ class OpenMP_TaskReductionClauseSkip<
OptionalAttr<SymbolRefArrayAttr>:$task_reduction_syms
);
- let extraClassDeclaration = [{
- /// Returns the reduction variables.
- SmallVector<Value> getAllReductionVars() {
- return SmallVector<Value>(getTaskReductionVars().begin(),
- getTaskReductionVars().end());
- }
- }];
-
let description = [{
The `task_reduction` clause specifies a reduction among tasks. For each list
item, the number of copies is unspecified. Any copies associated with the
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index 401c4c11d8986..5752446494280 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -751,11 +751,9 @@ def TaskloopOp : OpenMP_Op<"taskloop", traits = [
RecursiveMemoryEffects, SingleBlock
], clauses = [
OpenMP_AllocateClause, OpenMP_FinalClause, OpenMP_GrainsizeClause,
- OpenMP_IfClause, OpenMP_InReductionClauseSkip<extraClassDeclaration = true>,
- OpenMP_MergeableClause, OpenMP_NogroupClause, OpenMP_NumTasksClause,
- OpenMP_PriorityClause, OpenMP_PrivateClause,
- OpenMP_ReductionClauseSkip<extraClassDeclaration = true>,
- OpenMP_UntiedClause
+ OpenMP_IfClause, OpenMP_InReductionClause, OpenMP_MergeableClause,
+ OpenMP_NogroupClause, OpenMP_NumTasksClause, OpenMP_PriorityClause,
+ OpenMP_PrivateClause, OpenMP_ReductionClause, OpenMP_UntiedClause
], singleRegion = true> {
let summary = "taskloop construct";
let description = [{
@@ -821,9 +819,6 @@ def TaskloopOp : OpenMP_Op<"taskloop", traits = [
}];
let extraClassDeclaration = [{
- /// Returns the reduction variables
- SmallVector<Value> getAllReductionVars();
-
void getEffects(SmallVectorImpl<MemoryEffects::EffectInstance> &effects);
}] # clausesExtraClassDeclaration;
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
index 3fa54d35ed09b..b375756bcf2ae 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
@@ -216,22 +216,6 @@ def MapClauseOwningOpInterface : OpInterface<"MapClauseOwningOpInterface"> {
];
}
-def ReductionClauseInterface : OpInterface<"ReductionClauseInterface"> {
- let description = [{
- OpenMP operations that support reduction clause have this interface.
- }];
-
- let cppNamespace = "::mlir::omp";
-
- let methods = [
- InterfaceMethod<
- "Get reduction vars", "::mlir::SmallVector<::mlir::Value>",
- "getAllReductionVars", (ins), [{}], [{
- return $_op.getReductionVars();
- }]>,
- ];
-}
-
def LoopWrapperInterface : OpInterface<"LoopWrapperInterface"> {
let description = [{
OpenMP operations that wrap a single loop nest. They must only contain a
diff --git a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
index 84b4d30076646..7b0df1281fef8 100644
--- a/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+++ b/mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
@@ -2726,14 +2726,6 @@ void TaskloopOp::build(OpBuilder &builder, OperationState &state,
makeArrayAttr(ctx, clauses.reductionSyms), clauses.untied);
}
-SmallVector<Value> TaskloopOp::getAllReductionVars() {
- SmallVector<Value> allReductionNvars(getInReductionVars().begin(),
- getInReductionVars().end());
- allReductionNvars.insert(allReductionNvars.end(), getReductionVars().begin(),
- getReductionVars().end());
- return allReductionNvars;
-}
-
LogicalResult TaskloopOp::verify() {
if (getAllocateVars().size() != getAllocatorVars().size())
return emitError(
More information about the Mlir-commits
mailing list