MLIR-AIE
AIEVecToLLVM.h
Go to the documentation of this file.
1//===- AIEVecToLLVM.h - AIEVec to LLVM dialect conversion -------*- 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 Xilinx Inc.
8//
9//===----------------------------------------------------------------------===//
10
11#ifndef AIE_CONVERSION_AIEVECTOLLVM_AIEVECTOLLVM_H
12#define AIE_CONVERSION_AIEVECTOLLVM_AIEVECTOLLVM_H
13
14#include "mlir/IR/BuiltinOps.h"
15#include "mlir/Pass/Pass.h"
16#include <memory>
17
18namespace mlir {
19class LLVMTypeConverter;
20class RewritePatternSet;
21class ModuleOp;
22} // namespace mlir
23
24namespace xilinx {
25namespace aievec {
26
27enum class Aie2Fp32Emulation : uint32_t;
28
30 mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns,
31 Aie2Fp32Emulation aie2Fp32EmulationOption, llvm::StringRef aieTarget);
32
34 mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns);
35
37 mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns);
38
40 mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns);
41
42std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
44} // namespace aievec
45
46// Forward declare options struct from generated code (in xilinx:: namespace)
47struct ConvertAIEVecToLLVMOptions;
48
49namespace aievec {
50std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
52 const xilinx::ConvertAIEVecToLLVMOptions &options);
53} // namespace aievec
54} // namespace xilinx
55
56#endif // AIE_CONVERSION_AIEVECTOLLVM_AIEVECTOLLVM_H
void populateAIEVecToLLVMCommonConversionPatterns(mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
void populateAIEVecToLLVMAIE2ConversionPatterns(mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
void populateAIEVecToLLVMAIE2pConversionPatterns(mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createConvertAIEVecToLLVMPass()
void populateAIEVecToLLVMConversionPatterns(mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, llvm::StringRef aieTarget)