MLIR-AIE 1.4.5.dev
FoldMulAddChainToConvOp.h
Go to the documentation of this file.
1//===--FoldMulAddChainToConvOp.h - Fold Mul Add Chain To AIEVec Conv Op --===//
2//
3// Copyright (C) 2022 Xilinx, Inc.
4// Copyright (C) 2022-2024 Advanced Micro Devices, Inc.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7
8#ifndef FOLDMULADDCHAINTOCONVOP_H
9#define FOLDMULADDCHAINTOCONVOP_H
10
11#include "mlir/Pass/AnalysisManager.h"
12#include "mlir/Transforms/DialectConversion.h"
13
14namespace xilinx {
15
16namespace aievec {
17//===----------------------------------------------------------------------===//
18// This is the implementation of the folding pass from mul add chain
19// to AIEVec convolution operations, compatible with the AIE2 architecture.
20//===----------------------------------------------------------------------===//
21
22// Configure the legalizations for aievec conv op transformation
24 mlir::ConversionTarget &target, mlir::AnalysisManager &am);
25
26// Populate the conversion pattern by FoldMulAddChainToConvOpPattern, which
27// folds a mul add chain into mul_conv and mac_conv.
29 mlir::RewritePatternSet &patterns, mlir::AnalysisManager &am,
30 unsigned shiftParam);
31
32} // namespace aievec
33} // namespace xilinx
34
35#endif // FOLDMULADDCHAINTOCONVOP_H
void configureAIEVecConvOpTransformationLegalizations(ConversionTarget &target, AnalysisManager &am)
void populateAIEVecConvOpTransformationPatterns(RewritePatternSet &patterns, AnalysisManager &am, unsigned shiftParam)