[Mlir-commits] [mlir] [mlir][tosa] Refactor convolution infer return type (PR #178869)
Iliyan Georgiev
llvmlistbot at llvm.org
Tue Feb 10 08:52:28 PST 2026
================
@@ -3435,162 +3435,241 @@ static LogicalResult poolingInferReturnTypes(
return success();
}
-LogicalResult Conv2DOp::inferReturnTypeComponents(
- MLIRContext *context, ::std::optional<Location> location,
- Conv2DOp::Adaptor adaptor,
- SmallVectorImpl<ShapedTypeComponents> &inferredReturnShapes) {
- llvm::SmallVector<int64_t> outputShape(4, ShapedType::kDynamic);
+template <typename AdaptorT>
+class ConvInferShapeAdaptor;
- int64_t inputWidth = ShapedType::kDynamic;
- int64_t inputHeight = ShapedType::kDynamic;
- int64_t weightWidth = ShapedType::kDynamic;
- int64_t weightHeight = ShapedType::kDynamic;
-
- // Input shape describes input width/height and batch.
+class ConvInferShapeAdaptorBase {
----------------
iliyan-georgiev-arm wrote:
nit:
I'm wondering if its worth having `inferInputShape`, `inferWeightShape`, `getNumSpatialDims`, `getOutputRank` and `getSpatialParameters` as pure virtuals of `ConvInferShapeAdaptorBase`
It would clarify the base class should not be instantiated and make it a bit neater if more infer adaptors are implemented in the future.
Though not strictly needed looking at usage bellow, so happy to leave as is.
https://github.com/llvm/llvm-project/pull/178869
More information about the Mlir-commits
mailing list