xref: /llvm-project/mlir/include/mlir-c/Dialect/GPU.h (revision 016e1eb9c86923bf6a9669697f6be8309d12b78c)
1 //===-- mlir-c/Dialect/GPU.h - C API for GPU dialect -------------*- C -*-===//
2 //
3 // Part of the LLVM 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 #ifndef MLIR_C_DIALECT_GPU_H
11 #define MLIR_C_DIALECT_GPU_H
12 
13 #include "mlir-c/IR.h"
14 #include "mlir-c/Support.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(GPU, gpu);
21 
22 //===-------------------------------------------------------------------===//
23 // AsyncTokenType
24 //===-------------------------------------------------------------------===//
25 
26 MLIR_CAPI_EXPORTED bool mlirTypeIsAGPUAsyncTokenType(MlirType type);
27 
28 MLIR_CAPI_EXPORTED MlirType mlirGPUAsyncTokenTypeGet(MlirContext ctx);
29 
30 //===---------------------------------------------------------------------===//
31 // ObjectAttr
32 //===---------------------------------------------------------------------===//
33 
34 MLIR_CAPI_EXPORTED bool mlirAttributeIsAGPUObjectAttr(MlirAttribute attr);
35 
36 MLIR_CAPI_EXPORTED MlirAttribute
37 mlirGPUObjectAttrGet(MlirContext mlirCtx, MlirAttribute target, uint32_t format,
38                      MlirStringRef objectStrRef, MlirAttribute mlirObjectProps);
39 
40 MLIR_CAPI_EXPORTED MlirAttribute mlirGPUObjectAttrGetWithKernels(
41     MlirContext mlirCtx, MlirAttribute target, uint32_t format,
42     MlirStringRef objectStrRef, MlirAttribute mlirObjectProps,
43     MlirAttribute mlirKernelsAttr);
44 
45 MLIR_CAPI_EXPORTED MlirAttribute
46 mlirGPUObjectAttrGetTarget(MlirAttribute mlirObjectAttr);
47 
48 MLIR_CAPI_EXPORTED uint32_t
49 mlirGPUObjectAttrGetFormat(MlirAttribute mlirObjectAttr);
50 
51 MLIR_CAPI_EXPORTED MlirStringRef
52 mlirGPUObjectAttrGetObject(MlirAttribute mlirObjectAttr);
53 
54 MLIR_CAPI_EXPORTED bool
55 mlirGPUObjectAttrHasProperties(MlirAttribute mlirObjectAttr);
56 
57 MLIR_CAPI_EXPORTED MlirAttribute
58 mlirGPUObjectAttrGetProperties(MlirAttribute mlirObjectAttr);
59 
60 MLIR_CAPI_EXPORTED bool
61 mlirGPUObjectAttrHasKernels(MlirAttribute mlirObjectAttr);
62 
63 MLIR_CAPI_EXPORTED MlirAttribute
64 mlirGPUObjectAttrGetKernels(MlirAttribute mlirObjectAttr);
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 
70 #include "mlir/Dialect/GPU/Transforms/Passes.capi.h.inc"
71 
72 #endif // MLIR_C_DIALECT_GPU_H
73