70 lines · c
1//===-- mlir-c/Dialect/Linalg.h - C API for Linalg dialect -------*- C -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM4// Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===---------------------------------------------------------------------===//9 10#ifndef MLIR_C_DIALECT_LINALG_H11#define MLIR_C_DIALECT_LINALG_H12 13#include "mlir-c/AffineMap.h"14#include "mlir-c/IR.h"15#include "mlir-c/Support.h"16 17#ifdef __cplusplus18extern "C" {19#endif20 21/// Apply the special region builder for the builtin named Linalg op.22/// Assert that `mlirOp` is a builtin named Linalg op.23MLIR_CAPI_EXPORTED void24mlirLinalgFillBuiltinNamedOpRegion(MlirOperation mlirOp);25 26MLIR_CAPI_EXPORTED bool mlirLinalgIsAContractionOp(MlirOperation op);27 28typedef struct MlirLinalgContractionDimensions {29 MlirAttribute batch;30 MlirAttribute m;31 MlirAttribute n;32 MlirAttribute k;33} MlirLinalgContractionDimensions;34 35MLIR_CAPI_EXPORTED MlirLinalgContractionDimensions36mlirLinalgInferContractionDimensions(MlirOperation op);37 38MLIR_CAPI_EXPORTED MlirLinalgContractionDimensions39mlirLinalgInferContractionDimensionsFromMaps(const MlirAffineMap *indexingMaps,40 size_t numMaps);41 42MLIR_CAPI_EXPORTED bool mlirLinalgIsAConvolutionOp(MlirOperation op);43 44typedef struct MlirLinalgConvolutionDimensions {45 MlirAttribute batch;46 MlirAttribute outputImage;47 MlirAttribute outputChannel;48 MlirAttribute filterLoop;49 MlirAttribute inputChannel;50 MlirAttribute depth;51 MlirAttribute strides;52 MlirAttribute dilations;53} MlirLinalgConvolutionDimensions;54 55MLIR_CAPI_EXPORTED MlirLinalgConvolutionDimensions56mlirLinalgInferConvolutionDimensions(MlirOperation op);57 58MLIR_CAPI_EXPORTED MlirAttribute59mlirLinalgGetIndexingMapsAttribute(MlirOperation op);60 61MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Linalg, linalg);62 63#ifdef __cplusplus64}65#endif66 67#include "mlir/Dialect/Linalg/Passes.capi.h.inc"68 69#endif // MLIR_C_DIALECT_LINALG_H70