MLIR-AIE
Dialects.cpp
Go to the documentation of this file.
1//===- Dialects.cpp ---------------------------------------------*- C++ -*-===//
2//
3// This file is licensed 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// (c) Copyright 2022-2024 Advanced Micro Devices, Inc. or its affiliates
8//
9//===----------------------------------------------------------------------===//
10
11#include <utility>
12
13#include "aie-c/Dialects.h"
14
19
20#include "mlir/CAPI/Registration.h"
21
22MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(AIE, aie, xilinx::AIE::AIEDialect)
23MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(AIEX, aiex, xilinx::AIEX::AIEXDialect)
25 xilinx::aievec::AIEVecDialect)
26MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(XLLVM, xllvm, xilinx::xllvm::XLLVMDialect)
27
28//===---------------------------------------------------------------------===//
29// ObjectFifoType
30//===---------------------------------------------------------------------===//
31
32bool aieTypeIsObjectFifoType(MlirType type) {
33 return llvm::isa<xilinx::AIE::AIEObjectFifoType>(unwrap(type));
34}
35
36MlirType aieObjectFifoTypeGet(MlirType type) {
37 return wrap(xilinx::AIE::AIEObjectFifoType::get(
38 llvm::cast<mlir::MemRefType>(unwrap(type))));
39}
40
41//===---------------------------------------------------------------------===//
42// ObjectFifoSubviewType
43//===---------------------------------------------------------------------===//
44
45bool aieTypeIsObjectFifoSubviewType(MlirType type) {
46 return llvm::isa<xilinx::AIE::AIEObjectFifoSubviewType>(unwrap(type));
47}
48
49MlirType aieObjectFifoSubviewTypeGet(MlirType type) {
50 return wrap(xilinx::AIE::AIEObjectFifoSubviewType::get(
51 llvm::cast<mlir::MemRefType>(unwrap(type))));
52}
53
54//===---------------------------------------------------------------------===//
55// BlockFloatType
56//===---------------------------------------------------------------------===//
57
58bool aieTypeIsBlockFloatType(MlirType type) {
59 return llvm::isa<xilinx::AIEX::BlockFloatType>(unwrap(type));
60}
61
62MlirType aieBlockFloatTypeGet(MlirContext ctx, const std::string& blockType) {
63 return wrap(xilinx::AIEX::BlockFloatType::get(unwrap(ctx), blockType));
64}
MlirType aieObjectFifoSubviewTypeGet(MlirType type)
Definition Dialects.cpp:49
bool aieTypeIsObjectFifoSubviewType(MlirType type)
Definition Dialects.cpp:45
MlirType aieBlockFloatTypeGet(MlirContext ctx, const std::string &blockType)
Definition Dialects.cpp:62
bool aieTypeIsBlockFloatType(MlirType type)
Definition Dialects.cpp:58
MlirType aieObjectFifoTypeGet(MlirType type)
Definition Dialects.cpp:36
MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(AIEVec, aievec, xilinx::aievec::AIEVecDialect) bool aieTypeIsObjectFifoType(MlirType type)
Definition Dialects.cpp:24
MLIR_CAPI_EXPORTED bool aieTypeIsObjectFifoType(MlirType type)