[mlir][Linalg] Inline an interface method to its only user.

It seems only the default implementation is ever used, so it doesn't seem
necessary to include this method in the interface.

Differential Revision: https://reviews.llvm.org/D130986
This commit is contained in:
Adrian Kuegel 2022-08-02 14:56:24 +02:00
parent b19de814ad
commit 84d4bb78e0
2 changed files with 12 additions and 21 deletions

View File

@ -983,26 +983,6 @@ def LinalgStructuredInterface : OpInterface<"LinalgOp"> {
return detail::canOpOperandsBeDroppedImpl($_op, droppedOperands);
}]
>,
InterfaceMethod<
/*desc=*/[{
Return the range of position in the result of the affine map
computed by getLoopsToShapesMap() which correspond to the
AffineExprs used to access the outputs of the operation.
}],
/*retTy=*/"std::pair<int64_t, int64_t>",
/*methodName=*/"getResultsPositionInLoopsToShapeMap",
/*args=*/(ins),
/*methodBody=*/"",
/*defaultImplementation=*/[{
int64_t inputRankSum = 0;
int64_t outputRankSum = 0;
for(OpOperand *input : getInputOperands())
inputRankSum += getRank(input);
for(OpOperand *output : getOutputOperands())
outputRankSum += getRank(output);
return {inputRankSum, inputRankSum + outputRankSum};
}]
>,
InterfaceMethod<
/*desc=*/[{
Like `getShape`, but only returns statically-known information, without

View File

@ -566,6 +566,17 @@ private:
llvm::SmallBitVector positions;
};
static std::pair<int64_t, int64_t>
getResultsPositionInLoopsToShapeMap(LinalgOp &op) {
int64_t inputRankSum = 0;
int64_t outputRankSum = 0;
for (OpOperand *input : op.getInputOperands())
inputRankSum += op.getRank(input);
for (OpOperand *output : op.getOutputOperands())
outputRankSum += op.getRank(output);
return {inputRankSum, inputRankSum + outputRankSum};
}
LogicalResult
LinalgOp::reifyResultShapes(OpBuilder &b,
ReifiedRankedShapedTypeDims &reifiedReturnShapes) {
@ -582,7 +593,7 @@ LinalgOp::reifyResultShapes(OpBuilder &b,
// Find the position in the above map that represents the shape of the
// result:dim being inferred.
auto resultShapesSubMapPos = getResultsPositionInLoopsToShapeMap();
auto resultShapesSubMapPos = getResultsPositionInLoopsToShapeMap(*this);
/// From loopsToShapesMap extract the submap that represents the shape of the
/// (resultIdx, dim) needed.