Skip to content

Commit

Permalink
[mlir][Linalg] Slightly adjust DestinationStyleOpInterface.
Browse files Browse the repository at this point in the history
Rename some interface methods to be consistent with the new accessor names.
This is a preparation for adding a ReduceOp, which then will implement
getIteratorTypes() and getOutputs() instead of iterator_types() and outputs().

Differential Revision: https://reviews.llvm.org/D134868
  • Loading branch information
akuegel committed Sep 29, 2022
1 parent 971c1b9 commit dbf1fe5
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
Expand Up @@ -488,7 +488,7 @@ def LinalgStructuredInterface : OpInterface<"LinalgOp"> {
/*args=*/(ins),
/*methodBody=*/"",
/*defaultImplementation=*/[{
return $_op.iterator_types();
return $_op.getIteratorTypes();
}]
>,
InterfaceMethod<
Expand Down Expand Up @@ -781,7 +781,8 @@ def LinalgStructuredInterface : OpInterface<"LinalgOp"> {
}

ValueRange outputs() {
return cast<DestinationStyleOpInterface>(*this->getOperation()).outputs();
return cast<DestinationStyleOpInterface>(*this->getOperation())
.getOutputs();
}

int64_t getNumOutputs() {
Expand Down Expand Up @@ -921,7 +922,8 @@ def LinalgStructuredInterface : OpInterface<"LinalgOp"> {
// The 'DestinationStyleOpInterface' provides access to the methods relevant
// for destination-style ops. A destination-style operation has 'n' input
// arguments and 'm' output arguments. Each op that wants to implement
// DestinationStyleOpInterface needs to define inputs() and outputs() methods.
// DestinationStyleOpInterface needs to define inputs() and getOutputs()
// methods.
def DestinationStyleOpInterface : OpInterface<"DestinationStyleOpInterface"> {
let cppNamespace = "::mlir::linalg";
let methods = [
Expand Down Expand Up @@ -952,14 +954,14 @@ def DestinationStyleOpInterface : OpInterface<"DestinationStyleOpInterface"> {
return $_op.getInputs().size();
}]
>,
// `outputs` must be defined by each op that wants to implement the
// `getOutputs` must be defined by each op that wants to implement the
// DestinationStyleOpInterface.
InterfaceMethod<
/*desc=*/[{
Return the output shape operands.
}],
/*retTy=*/"ValueRange",
/*methodName=*/"outputs",
/*methodName=*/"getOutputs",
/*args=*/(ins)
>,
InterfaceMethod<
Expand All @@ -971,7 +973,7 @@ def DestinationStyleOpInterface : OpInterface<"DestinationStyleOpInterface"> {
/*args=*/(ins),
/*methodBody=*/"",
/*defaultImplementation=*/[{
return $_op.outputs().size();
return $_op.getOutputs().size();
}]
>,
InterfaceMethod<
Expand Down

0 comments on commit dbf1fe5

Please sign in to comment.