My Project
Core.h
Go to the documentation of this file.
1 /*===-- mlir-c/Core.h - Core Library C Interface ------------------*- C -*-===*\
2 |* *|
3 |* Part of the MLIR Project, under the Apache License v2.0 with LLVM *|
4 |* Exceptions. *|
5 |* See https://llvm.org/LICENSE.txt for license information. *|
6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
7 |* *|
8 |*===----------------------------------------------------------------------===*|
9 |* *|
10 |* This header declares the C interface to MLIR. *|
11 |* *|
12 \*===----------------------------------------------------------------------===*/
13 #ifndef MLIR_C_CORE_H
14 #define MLIR_C_CORE_H
15 
16 #ifdef __cplusplus
17 #include <cstdint>
18 extern "C" {
19 #else
20 #include <stdint.h>
21 #endif
22 
25 typedef void *mlir_context_t;
27 typedef const void *mlir_type_t;
29 typedef void *mlir_func_t;
31 typedef const void *mlir_attr_t;
32 
39 typedef struct {
40  int64_t *values;
41  uint64_t n;
42 } int64_list_t;
43 
44 typedef struct {
45  mlir_type_t *types;
46  uint64_t n;
48 
49 typedef struct {
50  const char *name;
51  mlir_attr_t value;
53 
54 typedef struct {
56  uint64_t n;
58 
60 
63 mlir_type_t makeMemRefType(mlir_context_t context, mlir_type_t elemType,
64  int64_list_t sizes);
65 
68 mlir_type_t makeFunctionType(mlir_context_t context, mlir_type_list_t inputs,
69  mlir_type_list_t outputs);
70 
72 mlir_type_t makeIndexType(mlir_context_t context);
73 
76 mlir_attr_t makeIntegerAttr(mlir_type_t type, int64_t value);
77 
79 mlir_attr_t makeBoolAttr(mlir_context_t context, bool value);
80 
82 mlir_attr_t makeFloatAttr(mlir_context_t context, float value);
83 
85 mlir_attr_t makeStringAttr(mlir_context_t context, const char *value);
86 
90 mlir_type_t mlirParseType(const char *type, mlir_context_t context,
91  uint64_t *charsRead);
92 
94 unsigned getFunctionArity(mlir_func_t function);
95 
100 unsigned getRankOfFunctionArgument(mlir_func_t function, unsigned pos);
101 
103 mlir_type_t getTypeOfFunctionArgument(mlir_func_t function, unsigned pos);
104 
105 #ifdef __cplusplus
106 } // end extern "C"
107 #endif
108 
109 #endif // MLIR_C_CORE_H
Definition: Core.h:49
Definition: Core.h:44
uint64_t n
Definition: Core.h:56
Definition: Core.h:39
int64_t * values
Definition: Core.h:40
mlir_attr_t makeIntegerAttr(mlir_type_t type, int64_t value)
Definition: CoreAPIs.cpp:56
mlir_type_t makeIndexType(mlir_context_t context)
Returns an mlir::IndexType.
Definition: CoreAPIs.cpp:50
mlir_type_t makeFunctionType(mlir_context_t context, mlir_type_list_t inputs, mlir_type_list_t outputs)
Definition: CoreAPIs.cpp:36
uint64_t n
Definition: Core.h:41
mlir_type_t mlirParseType(const char *type, mlir_context_t context, uint64_t *charsRead)
Definition: CoreAPIs.cpp:85
const char * name
Definition: Core.h:50
void * mlir_func_t
Opaque C type for mlir::FuncOp.
Definition: Core.h:29
uint64_t n
Definition: Core.h:46
mlir_type_t getTypeOfFunctionArgument(mlir_func_t function, unsigned pos)
Returns an opaque mlir::Type of the function argument at position pos.
mlir_attr_t makeBoolAttr(mlir_context_t context, bool value)
Returns an mlir::BoolAttr with the given value.
Definition: CoreAPIs.cpp:62
unsigned getFunctionArity(mlir_func_t function)
Returns the arity of function.
Definition: CoreAPIs.cpp:80
const void * mlir_type_t
Opaque C type for mlir::Type.
Definition: Core.h:27
mlir_attr_t value
Definition: Core.h:51
Definition: Core.h:54
mlir_attr_t makeFloatAttr(mlir_context_t context, float value)
Returns an mlir::FloatAttr with the given value.
Definition: CoreAPIs.cpp:68
mlir_type_t makeMemRefType(mlir_context_t context, mlir_type_t elemType, int64_list_t sizes)
Minimal C API for exposing EDSCs to Swift, Python and other languages.
Definition: CoreAPIs.cpp:25
unsigned getRankOfFunctionArgument(mlir_func_t function, unsigned pos)
mlir_type_t * types
Definition: Core.h:45
void * mlir_context_t
Definition: Core.h:25
mlir_attr_t makeStringAttr(mlir_context_t context, const char *value)
Returns an mlir::StringAttr with the given value.
Definition: CoreAPIs.cpp:74
mlir_named_attr_t * list
Definition: Core.h:55
const void * mlir_attr_t
Opaque C type for mlir::Attribute.
Definition: Core.h:31