1 //===- IR.h - C API Utils for Core MLIR classes -----------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file contains declarations of implementation details of the C API for
10 // core MLIR classes. This file should not be included from C++ code other than
11 // C API implementation nor from C code.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef MLIR_CAPI_IR_H
16 #define MLIR_CAPI_IR_H
17 
18 #include "mlir/CAPI/Wrap.h"
19 #include "mlir/IR/BuiltinOps.h"
20 #include "mlir/IR/Identifier.h"
21 #include "mlir/IR/MLIRContext.h"
22 #include "mlir/IR/Operation.h"
23 
24 DEFINE_C_API_PTR_METHODS(MlirContext, mlir::MLIRContext)
25 DEFINE_C_API_PTR_METHODS(MlirDialect, mlir::Dialect)
26 DEFINE_C_API_PTR_METHODS(MlirOperation, mlir::Operation)
27 DEFINE_C_API_PTR_METHODS(MlirBlock, mlir::Block)
28 DEFINE_C_API_PTR_METHODS(MlirOpPrintingFlags, mlir::OpPrintingFlags)
29 DEFINE_C_API_PTR_METHODS(MlirRegion, mlir::Region)
30 
31 DEFINE_C_API_METHODS(MlirAttribute, mlir::Attribute)
32 DEFINE_C_API_METHODS(MlirIdentifier, mlir::Identifier)
33 DEFINE_C_API_METHODS(MlirLocation, mlir::Location)
34 DEFINE_C_API_METHODS(MlirModule, mlir::ModuleOp)
35 DEFINE_C_API_METHODS(MlirType, mlir::Type)
36 DEFINE_C_API_METHODS(MlirValue, mlir::Value)
37 
38 #endif // MLIR_CAPI_IR_H
39