Files
gps/tools/local/circt/include/mlir-c/Dialect/Linalg.h
T
2026-07-12 11:01:51 +03:00

74 lines
2.2 KiB
C

//===-- mlir-c/Dialect/Linalg.h - C API for Linalg dialect -------*- C -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM
// Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===---------------------------------------------------------------------===//
#ifndef MLIR_C_DIALECT_LINALG_H
#define MLIR_C_DIALECT_LINALG_H
#include "mlir-c/AffineMap.h"
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
#ifdef __cplusplus
extern "C" {
#endif
/// Apply the special region builder for the builtin named Linalg op.
/// Assert that `mlirOp` is a builtin named Linalg op.
MLIR_CAPI_EXPORTED void
mlirLinalgFillBuiltinNamedOpRegion(MlirOperation mlirOp);
MLIR_CAPI_EXPORTED bool mlirLinalgIsAContractionOp(MlirOperation op);
typedef struct MlirLinalgContractionDimensions {
MlirAttribute batch;
MlirAttribute m;
MlirAttribute n;
MlirAttribute k;
} MlirLinalgContractionDimensions;
MLIR_CAPI_EXPORTED MlirLinalgContractionDimensions
mlirLinalgInferContractionDimensions(MlirOperation op);
MLIR_CAPI_EXPORTED MlirLinalgContractionDimensions
mlirLinalgInferContractionDimensionsFromMaps(const MlirAffineMap *indexingMaps,
size_t numMaps);
MLIR_CAPI_EXPORTED bool mlirLinalgIsAConvolutionOp(MlirOperation op);
typedef struct MlirLinalgConvolutionDimensions {
MlirAttribute batch;
MlirAttribute outputImage;
MlirAttribute outputChannel;
MlirAttribute filterLoop;
MlirAttribute inputChannel;
MlirAttribute depth;
MlirAttribute strides;
MlirAttribute dilations;
} MlirLinalgConvolutionDimensions;
MLIR_CAPI_EXPORTED MlirLinalgConvolutionDimensions
mlirLinalgInferConvolutionDimensions(MlirOperation op);
MLIR_CAPI_EXPORTED MlirLinalgConvolutionDimensions
mlirLinalgInferConvolutionDimensionsFromMaps(const MlirAffineMap *indexingMaps,
size_t numMaps);
MLIR_CAPI_EXPORTED MlirAttribute
mlirLinalgGetIndexingMapsAttribute(MlirOperation op);
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Linalg, linalg);
#ifdef __cplusplus
}
#endif
#include "mlir/Dialect/Linalg/Passes.capi.h.inc"
#endif // MLIR_C_DIALECT_LINALG_H