MLIR-AIE 1.4.5.dev
Dialects.h
Go to the documentation of this file.
1//===- Dialects.h -----------------------------------------------*- C++ -*-===//
2//
3// Copyright (C) 2022 Advanced Micro Devices, Inc.
4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5//
6//===----------------------------------------------------------------------===//
7
8#ifndef AIE_C_DIALECTS_H
9#define AIE_C_DIALECTS_H
10
11#include "mlir-c/IR.h"
12#include <string>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
22
23//===---------------------------------------------------------------------===//
24// ObjectFifoType
25//===---------------------------------------------------------------------===//
26
27MLIR_CAPI_EXPORTED bool aieTypeIsObjectFifoType(MlirType type);
28MLIR_CAPI_EXPORTED MlirType aieObjectFifoTypeGet(MlirType type);
29
30//===---------------------------------------------------------------------===//
31// BlockFloatType
32//===---------------------------------------------------------------------===//
33
34MLIR_CAPI_EXPORTED bool aieTypeIsBlockFloatType(MlirType type);
35MLIR_CAPI_EXPORTED MlirType aieBlockFloatTypeGet(MlirContext ctx,
36 const std::string &blockType);
37
38//===---------------------------------------------------------------------===//
39// Data layout
40//===---------------------------------------------------------------------===//
41
42/// Size of \p type in bits under the default data layout, or 0 for a type that
43/// does not describe one. A dialect type answers through its
44/// DataLayoutTypeInterface, so a block floating-point type reports the bits one
45/// block occupies rather than the bits of one value.
46MLIR_CAPI_EXPORTED uint64_t aieTypeGetSizeInBits(MlirType type);
47
48//===---------------------------------------------------------------------===//
49// TileLike Interface
50//===---------------------------------------------------------------------===//
51
52MLIR_CAPI_EXPORTED bool aieOpImplementsTileLike(MlirOperation op);
53MLIR_CAPI_EXPORTED bool aieTileLikeIsCoreTile(MlirOperation op);
54MLIR_CAPI_EXPORTED bool aieTileLikeIsMemTile(MlirOperation op);
55MLIR_CAPI_EXPORTED bool aieTileLikeIsShimNOCTile(MlirOperation op);
56MLIR_CAPI_EXPORTED bool aieTileLikeIsShimPLTile(MlirOperation op);
57MLIR_CAPI_EXPORTED bool aieTileLikeIsShimNOCorPLTile(MlirOperation op);
58
59//===---------------------------------------------------------------------===//
60// TraceBufferAttr / TraceSliceAttr
61//===---------------------------------------------------------------------===//
62
63MLIR_CAPI_EXPORTED bool aieAttrIsTraceBuffer(MlirAttribute attr);
64MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetArgIndex(MlirAttribute attr);
65MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetOffset(MlirAttribute attr);
66MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetSize(MlirAttribute attr);
67MLIR_CAPI_EXPORTED bool aieTraceBufferGetDedicated(MlirAttribute attr);
68
69MLIR_CAPI_EXPORTED bool aieAttrIsTraceSlice(MlirAttribute attr);
70MLIR_CAPI_EXPORTED MlirStringRef aieTraceSliceGetDevice(MlirAttribute attr);
71MLIR_CAPI_EXPORTED MlirStringRef aieTraceSliceGetSequence(MlirAttribute attr);
72MLIR_CAPI_EXPORTED uint32_t aieTraceSliceGetOffset(MlirAttribute attr);
73MLIR_CAPI_EXPORTED uint32_t aieTraceSliceGetSize(MlirAttribute attr);
74
75#ifdef __cplusplus
76}
77#endif
78
79#endif // AIE_C_DIALECTS_H
MLIR_CAPI_EXPORTED uint32_t aieTraceSliceGetOffset(MlirAttribute attr)
Definition Dialects.cpp:135
MLIR_CAPI_EXPORTED bool aieAttrIsTraceBuffer(MlirAttribute attr)
Definition Dialects.cpp:101
MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetOffset(MlirAttribute attr)
Definition Dialects.cpp:109
MLIR_CAPI_EXPORTED uint32_t aieTraceSliceGetSize(MlirAttribute attr)
Definition Dialects.cpp:139
MLIR_CAPI_EXPORTED bool aieTileLikeIsCoreTile(MlirOperation op)
Definition Dialects.cpp:72
MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetArgIndex(MlirAttribute attr)
Definition Dialects.cpp:105
MLIR_CAPI_EXPORTED MlirType aieBlockFloatTypeGet(MlirContext ctx, const std::string &blockType)
Definition Dialects.cpp:46
MLIR_CAPI_EXPORTED MlirStringRef aieTraceSliceGetDevice(MlirAttribute attr)
Definition Dialects.cpp:125
MLIR_CAPI_EXPORTED bool aieAttrIsTraceSlice(MlirAttribute attr)
Definition Dialects.cpp:121
MLIR_CAPI_EXPORTED bool aieOpImplementsTileLike(MlirOperation op)
Definition Dialects.cpp:68
MLIR_CAPI_EXPORTED MlirStringRef aieTraceSliceGetSequence(MlirAttribute attr)
Definition Dialects.cpp:130
MLIR_CAPI_EXPORTED bool aieTraceBufferGetDedicated(MlirAttribute attr)
Definition Dialects.cpp:117
MLIR_CAPI_EXPORTED bool aieTypeIsBlockFloatType(MlirType type)
Definition Dialects.cpp:42
MLIR_CAPI_EXPORTED bool aieTileLikeIsShimPLTile(MlirOperation op)
Definition Dialects.cpp:87
MLIR_CAPI_EXPORTED uint32_t aieTraceBufferGetSize(MlirAttribute attr)
Definition Dialects.cpp:113
MLIR_CAPI_EXPORTED MlirType aieObjectFifoTypeGet(MlirType type)
Definition Dialects.cpp:33
MLIR_CAPI_EXPORTED bool aieTileLikeIsShimNOCTile(MlirOperation op)
Definition Dialects.cpp:82
MLIR_CAPI_EXPORTED uint64_t aieTypeGetSizeInBits(MlirType type)
Size of type in bits under the default data layout, or 0 for a type that does not describe one.
Definition Dialects.cpp:54
MLIR_CAPI_EXPORTED bool aieTileLikeIsShimNOCorPLTile(MlirOperation op)
Definition Dialects.cpp:92
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(AIE, aie)
MLIR_CAPI_EXPORTED bool aieTypeIsObjectFifoType(MlirType type)
MLIR_CAPI_EXPORTED bool aieTileLikeIsMemTile(MlirOperation op)
Definition Dialects.cpp:77