|
MLIR-AIE 1.4.5.dev
|
Namespaces | |
| namespace | aie1 |
Typedefs | |
| using | AddElemOpAIE2pConversion |
| using | SubElemOpAIE2pConversion |
| using | CmpOpConversion |
| using | CmpOpAIE2pConversion |
| using | SelOpConversion |
| using | SelOpAIE2pConversion |
Enumerations | |
| enum class | MatMulRecipeKind { AIE2_I8xI4_4x16x8 , AIE2_I8xI8_4x8x8 , AIE2_I16xI8_4x4x8 , AIE2_I16xI16_4x2x8 , AIE2_I16xI8_2x8x8_Acc64 , AIE2_I16xI8_4x8x4_Acc64 , AIE2_I16xI16_2x4x8_Acc64 , AIE2_I16xI16_4x4x4_Acc64 , AIE2_I32xI16_4x2x4_Acc64 , AIE2_BF16_4x8x4 , AIE2P_I8_8x8x8 , AIE2P_I16_8x2x8 , AIE2P_BFP16_8x8x8 , AIE2P_BFP16_4x8x8 , AIE2P_BF16Elem_8x8x4 , AIE2P_BF16Elem_4x8x4 , AIE2P_BF16Outer_8x1x8 } |
| enum class | AIEArch { AIE2 , AIE2p } |
Functions | |
| void | populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, llvm::StringRef aieTarget) |
| 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 () |
| std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > | createConvertAIEVecToLLVMPass (const xilinx::ConvertAIEVecToLLVMOptions &options) |
| char | getHexValue (int val) |
| bool | isPowerOfTwo (int32_t n) |
| mlir::VectorType | createVectorType (unsigned lanes, mlir::Type elementType) |
| int32_t | getElementSizeInBits (mlir::VectorType type) |
| unsigned | getVectorLaneSize (mlir::VectorType type) |
| int32_t | getVectorSizeInBits (mlir::VectorType type) |
| bool | isAIEOp (mlir::Operation *op) |
| mlir::VectorType | getVectorOpDestType (mlir::VectorType type, bool AIE2) |
| mlir::AffineExpr | flattenedStridedExpr (llvm::ArrayRef< int64_t > sizes, llvm::ArrayRef< mlir::AffineExpr > exprs, mlir::MLIRContext *context) |
| mlir::AffineExpr | constructLinearizedAffineExprForUPDOp (UPDOp updOp) |
| std::pair< mlir::AffineExpr, int32_t > | extractBaseAndOffset (mlir::AffineExpr expr) |
| bool | isAssumingNoImplicitBroadcastOfDynamicSizes (mlir::Block *block) |
| bool | isAssumingNoImplicitBroadcastOfDynamicSizes (mlir::OpBuilder &builder) |
| std::unique_ptr< mlir::Pass > | createAIEVecConvolutionAnalysisPass () |
| std::optional< MatMulRecipe > | getMatMulRecipe (bool aie2p, mlir::Type lhsElemTy, mlir::Type rhsElemTy, mlir::Type accElemTy, int64_t m, int64_t k, int64_t n) |
| std::optional< llvm::SmallVector< ShuffleMode, 2 > > | getTileTransposeModes (bool aie2p, mlir::Type elemTy, int64_t rows, int64_t cols) |
| std::optional< MatMulRecipe > | checkMatMulTile (bool aie2p, mlir::VectorType lhsTy, mlir::VectorType rhsTy, mlir::VectorType accTy, bool lhsTransposed, bool rhsTransposed, llvm::function_ref< mlir::InFlightDiagnostic()> emitError=nullptr) |
| ShuffleModeShape | getShuffleModeShape (ShuffleMode mode) |
| bool | isAIE2POnlyShuffleMode (ShuffleMode mode) |
| std::array< uint8_t, 64 > | getShuffleModeBytePermutation (ShuffleMode mode) |
| void | buildConvertVectorToAIEVec (mlir::OpPassManager &pm, const ConvertVectorToAIEVecOptions &options) |
| Adds the "convert-vector-to-aievec" pipeline to the OpPassManager. | |
| void | buildCanonicalizeVectorForAIEVec (mlir::OpPassManager &pm, const CanonicalizeVectorForAIEVecOptions &options) |
| void | buildLowerVectorToAIEVec (mlir::OpPassManager &pm, const LowerVectorToAIEVecOptions &options) |
| void | buildOptimizeAIEVec (mlir::OpPassManager &pm, const OptimizeAIEVecOptions &options) |
| void | registerAIEVecPipelines () |
| Register all pipelines for the AIE Vector dialect. | |
| std::unique_ptr<::mlir::Pass > | createCopyRemovalPass () |
| Create a pass that removes unnecessary Copy operations. | |
| std::unique_ptr<::mlir::Pass > | createDynamicSizeNoImplicitBroadcastPass () |
| void | buildDynamicSizeNoImplicitBroadcastPass (mlir::OpPassManager &pm) |
| std::unique_ptr<::mlir::Pass > | createSplitVectorLoadUpsChainsPass () |
| Create a pass that splits vector.load + aievec.ups chains to reduce shuffle operations for AIE2p targets. | |
| std::unique_ptr<::mlir::Pass > | createBF16EmulationPass () |
| Create a pass that runs f32 vector arithmetic on the bf16 datapath: multiplies and transcendentals take inputs rounded to bf16, sums stay f32. | |
| void | registerTransformDialectExtension (mlir::DialectRegistry ®istry) |
| template<typename TransferReadLikeOp, typename = std::enable_if_t< std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp> || std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp::Adaptor>>> | |
| std::optional< int64_t > | getTransferReadAlignmentOffset (TransferReadLikeOp readOp, mlir::VectorType vType, int64_t alignment) |
| mlir::VectorType | getFlattenedVectorType (mlir::VectorType vecTy) |
| void | populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, StringRef aieTarget) |
| unsigned | estimateLLVMShuffleCost (const ShuffleGather &gather) |
| bool | simulateShufflePlan (const ShuffleGather &gather, const ShufflePlan &plan) |
| void | populateAIE2PShufflePlannerPatterns (mlir::RewritePatternSet &patterns, std::shared_ptr< AIE2PShufflePlanner > planner) |
| void | configureAIE2PShufflePlannerLegality (mlir::ConversionTarget &target, std::shared_ptr< AIE2PShufflePlanner > planner) |
| SmallVector< NamedAttribute > | buildFMAOpSplatAttrForElemTy (aievec::aie1::FMAOp fmaOp, int64_t bcastPos, int64_t step=1) |
| void | configureAIEVecConvOpTransformationLegalizations (ConversionTarget &target, AnalysisManager &am) |
| void | populateAIEVecConvOpTransformationPatterns (RewritePatternSet &patterns, AnalysisManager &am, unsigned shiftParam) |
| void | configureAIEVecConvOpTransformationLegalizations (mlir::ConversionTarget &target, mlir::AnalysisManager &am) |
| void | populateAIEVecConvOpTransformationPatterns (mlir::RewritePatternSet &patterns, mlir::AnalysisManager &am, unsigned shiftParam) |
| template<typename TransferReadLikeOp, typename> | |
| std::optional< int64_t > | getTransferReadAlignmentOffset (TransferReadLikeOp readOp, VectorType vType, int64_t alignment) |
| template std::optional< int64_t > | getTransferReadAlignmentOffset (vector::TransferReadOp readOp, VectorType vType, int64_t alignment) |
| template std::optional< int64_t > | getTransferReadAlignmentOffset (vector::TransferReadOp::Adaptor readOp, VectorType vType, int64_t alignment) |
| VectorType | getFlattenedVectorType (VectorType vecTy) |
Definition at line 510 of file AIEVecToLLVM.cpp.
Definition at line 3462 of file AIEVecToLLVM.cpp.
Definition at line 3456 of file AIEVecToLLVM.cpp.
Definition at line 3561 of file AIEVecToLLVM.cpp.
Definition at line 3558 of file AIEVecToLLVM.cpp.
Definition at line 513 of file AIEVecToLLVM.cpp.
|
strong |
| Enumerator | |
|---|---|
| AIE2 | |
| AIE2p | |
Definition at line 1490 of file AIEVecToLLVM.cpp.
|
strong |
Definition at line 29 of file AIEVecMatMul.h.
| void xilinx::aievec::buildCanonicalizeVectorForAIEVec | ( | mlir::OpPassManager & | pm, |
| const CanonicalizeVectorForAIEVecOptions & | options ) |
Referenced by registerAIEVecPipelines().
| void xilinx::aievec::buildConvertVectorToAIEVec | ( | mlir::OpPassManager & | pm, |
| const ConvertVectorToAIEVecOptions & | options ) |
Adds the "convert-vector-to-aievec" pipeline to the OpPassManager.
This pipeline takes Vector code, transforms it to make it compatible with the selected AIE target, lowers it to AIEVec dialect, and performs some optimizations based on the target AIE architecture.
Referenced by registerAIEVecPipelines().
| void xilinx::aievec::buildDynamicSizeNoImplicitBroadcastPass | ( | mlir::OpPassManager & | pm | ) |
Referenced by registerAIEVecPipelines().
| SmallVector< NamedAttribute > xilinx::aievec::buildFMAOpSplatAttrForElemTy | ( | aievec::aie1::FMAOp | fmaOp, |
| int64_t | bcastPos, | ||
| int64_t | step = 1 ) |
Definition at line 560 of file VectorToAIEVecConversions.cpp.
Referenced by FoldSplatToFMAOp::matchAndRewrite(), and MergeSingleColumnI16FMAOpPattern::matchAndRewrite().
| void xilinx::aievec::buildLowerVectorToAIEVec | ( | mlir::OpPassManager & | pm, |
| const LowerVectorToAIEVecOptions & | options ) |
Referenced by registerAIEVecPipelines().
| void xilinx::aievec::buildOptimizeAIEVec | ( | mlir::OpPassManager & | pm, |
| const OptimizeAIEVecOptions & | options ) |
Referenced by registerAIEVecPipelines().
| std::optional< MatMulRecipe > xilinx::aievec::checkMatMulTile | ( | bool | aie2p, |
| mlir::VectorType | lhsTy, | ||
| mlir::VectorType | rhsTy, | ||
| mlir::VectorType | accTy, | ||
| bool | lhsTransposed, | ||
| bool | rhsTransposed, | ||
| llvm::function_ref< mlir::InFlightDiagnostic()> | emitError = nullptr ) |
| void xilinx::aievec::configureAIE2PShufflePlannerLegality | ( | mlir::ConversionTarget & | target, |
| std::shared_ptr< AIE2PShufflePlanner > | planner ) |
| void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations | ( | ConversionTarget & | target, |
| AnalysisManager & | am ) |
Definition at line 503 of file FoldMulAddChainToConvOp.cpp.
References LongestConvMACChainAnalysis::am, and LongestConvMACChainAnalysis::canChainBeReplacedWithConvOps().
Referenced by AIEVecConvOpTransformationPass::runOnOperation().
| void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations | ( | mlir::ConversionTarget & | target, |
| mlir::AnalysisManager & | am ) |
|
inline |
Definition at line 150 of file AIEVecUtils.h.
References flattenedStridedExpr().
| std::unique_ptr< Pass > xilinx::aievec::createAIEVecConvolutionAnalysisPass | ( | ) |
Definition at line 596 of file FoldMulAddChainToConvOp.cpp.
| std::unique_ptr<::mlir::Pass > xilinx::aievec::createBF16EmulationPass | ( | ) |
Create a pass that runs f32 vector arithmetic on the bf16 datapath: multiplies and transcendentals take inputs rounded to bf16, sums stay f32.
Definition at line 1000 of file VectorToVectorConversions.cpp.
| std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass | ( | ) |
Definition at line 5425 of file AIEVecToLLVM.cpp.
References createConvertAIEVecToLLVMPass().
Referenced by createConvertAIEVecToLLVMPass(), and createConvertAIEVecToLLVMPass().
| std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass | ( | const xilinx::ConvertAIEVecToLLVMOptions & | options | ) |
Definition at line 5430 of file AIEVecToLLVM.cpp.
References createConvertAIEVecToLLVMPass().
| std::unique_ptr<::mlir::Pass > xilinx::aievec::createCopyRemovalPass | ( | ) |
Create a pass that removes unnecessary Copy operations.
Definition at line 239 of file CopyRemoval.cpp.
| std::unique_ptr<::mlir::Pass > xilinx::aievec::createDynamicSizeNoImplicitBroadcastPass | ( | ) |
Definition at line 118 of file DynamicSizeNoImplicitBroadcast.cpp.
| std::unique_ptr<::mlir::Pass > xilinx::aievec::createSplitVectorLoadUpsChainsPass | ( | ) |
Create a pass that splits vector.load + aievec.ups chains to reduce shuffle operations for AIE2p targets.
Definition at line 389 of file SplitVectorLoadUpsChains.cpp.
|
inline |
Definition at line 41 of file AIEVecUtils.h.
Referenced by ComputeSignedIntRightShiftOpPattern::matchAndRewrite(), ConvertMulAddFToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulFToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertMulIToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcastAIE2p::matchAndRewrite(), ConvertVectorFMAOpToAIEVecFMAElemOpPattern::matchAndRewrite(), FoldVectorExtractAndSplatToAIEBroadcast::matchAndRewrite(), LowerScalarMinMaxToAIEVecMinMaxOp< arith::MinSIOp, aievec::MinOp >::matchAndRewrite(), LowerScalarShiftClampTruncToSRS::matchAndRewrite(), LowerScalarShRSIToAIEVecUPSSRS::matchAndRewrite(), LowerVectorAddOrSubOpToAIEVecAddElemOrSubElemOp< arith::AddIOp, aievec::AddElemOp >::matchAndRewrite(), LowerVectorMinMaxOpToAIEVecMinMaxOp< arith::MinSIOp, aievec::MinOp >::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2P::matchAndRewrite(), LowerVectorReductionAddIntOp::matchAndRewrite(), LowerVectorSelectOpToAIEVecSelOp::matchAndRewrite(), and ShiftClampTruncToSRSPattern::matchAndRewrite().
| unsigned xilinx::aievec::estimateLLVMShuffleCost | ( | const ShuffleGather & | gather | ) |
Definition at line 630 of file AIE2PShufflePlanner.cpp.
References xilinx::aievec::ShuffleGather::elemBits, xilinx::aievec::ShuffleGather::sourceIsSplat, xilinx::aievec::ShuffleGather::sourceLanes, xilinx::aievec::ShuffleGather::sourceOffset(), and xilinx::aievec::ShuffleGather::target.
Referenced by xilinx::aievec::AIE2PShufflePlanner::planFor().
|
inline |
Definition at line 205 of file AIEVecUtils.h.
|
inline |
Definition at line 110 of file AIEVecUtils.h.
Referenced by constructLinearizedAffineExprForUPDOp().
|
inline |
Definition at line 48 of file AIEVecUtils.h.
Referenced by LongestConvMACChainAnalysis::getConvMacFromMulOp(), getVectorSizeInBits(), FoldMulAddChainToConvOpPattern::matchAndRewrite(), LowerVectorExtractStridedSliceOpAIE2Pattern::matchAndRewrite(), LowerVectorExtractStridedSliceOpAIEv1Pattern::matchAndRewrite(), and SplitUnalignedTransferReadPattern::matchAndRewrite().
| mlir::VectorType xilinx::aievec::getFlattenedVectorType | ( | mlir::VectorType | vecTy | ) |
Referenced by ConvertSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcastAIE2p::matchAndRewrite(), FlattenElementwiseVectorToRank1Pattern< OpTy >::matchAndRewrite(), FlattenVectorIterArgsPattern::matchAndRewrite(), xilinx::aievec::FMAElemOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::FMAElemOpConversion::matchAndRewrite(), xilinx::aievec::NegOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UPSOpAIE2Conversion::matchAndRewrite(), and xilinx::aievec::UPSOpAIE2pConversion::matchAndRewrite().
| VectorType xilinx::aievec::getFlattenedVectorType | ( | VectorType | vecTy | ) |
|
inline |
Definition at line 30 of file AIEVecUtils.h.
| std::optional< MatMulRecipe > xilinx::aievec::getMatMulRecipe | ( | bool | aie2p, |
| mlir::Type | lhsElemTy, | ||
| mlir::Type | rhsElemTy, | ||
| mlir::Type | accElemTy, | ||
| int64_t | m, | ||
| int64_t | k, | ||
| int64_t | n ) |
Definition at line 1302 of file AIEVecOps.cpp.
| std::array< uint8_t, 64 > xilinx::aievec::getShuffleModeBytePermutation | ( | ShuffleMode | mode | ) |
Definition at line 1478 of file AIEVecOps.cpp.
References xilinx::aievec::ShuffleModeShape::blockBits(), xilinx::aievec::ShuffleModeShape::cols, xilinx::aievec::ShuffleModeShape::elemBits, xilinx::aievec::ShuffleModeShape::flip, getShuffleModeShape(), xilinx::aievec::ShuffleModeShape::hi, xilinx::aievec::ShuffleModeShape::isTwoInput(), and xilinx::aievec::ShuffleModeShape::rows.
Referenced by simulateShufflePlan().
| ShuffleModeShape xilinx::aievec::getShuffleModeShape | ( | ShuffleMode | mode | ) |
Definition at line 1457 of file AIEVecOps.cpp.
References xilinx::aievec::ShuffleModeShape::cols, xilinx::aievec::ShuffleModeShape::elemBits, xilinx::aievec::ShuffleModeShape::flip, xilinx::aievec::ShuffleModeShape::hi, and xilinx::aievec::ShuffleModeShape::rows.
Referenced by getShuffleModeBytePermutation().
| std::optional< SmallVector< ShuffleMode, 2 > > xilinx::aievec::getTileTransposeModes | ( | bool | aie2p, |
| mlir::Type | elemTy, | ||
| int64_t | rows, | ||
| int64_t | cols ) |
Definition at line 1323 of file AIEVecOps.cpp.
| std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset | ( | TransferReadLikeOp | readOp, |
| mlir::VectorType | vType, | ||
| int64_t | alignment ) |
| std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset | ( | TransferReadLikeOp | readOp, |
| VectorType | vType, | ||
| int64_t | alignment ) |
| template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset | ( | vector::TransferReadOp | readOp, |
| VectorType | vType, | ||
| int64_t | alignment ) |
| template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset | ( | vector::TransferReadOp::Adaptor | readOp, |
| VectorType | vType, | ||
| int64_t | alignment ) |
|
inline |
Definition at line 54 of file AIEVecUtils.h.
Referenced by xilinx::aievec::MulElemOpAIE2pConversion::decodeMulElemOp(), getVectorSizeInBits(), ComputeAbsOpPattern< math::AbsFOp >::matchAndRewrite(), ComputeBandAndBorOpPattern< arith::OrIOp, aievec::BorOp >::matchAndRewrite(), ComputeBxorAndBnegOpPattern::matchAndRewrite(), ComputeCeilOpPattern::matchAndRewrite(), ComputeErfOpPattern::matchAndRewrite(), ComputeExpOpByLUTLLVMPattern::matchAndRewrite(), ComputeFloorOpPattern::matchAndRewrite(), ComputeNegOpPattern::matchAndRewrite(), ComputeRsqrtOpLLVMAIE2Pattern::matchAndRewrite(), ComputeRsqrtOpPattern::matchAndRewrite(), ComputeSigmoidOpPattern::matchAndRewrite(), ComputeSignedIntRightShiftOpPattern::matchAndRewrite(), ComputeSqrtOpAIE2Pattern::matchAndRewrite(), ComputeTanhOpByLUTPattern::matchAndRewrite(), ConvertDivFToAIEVecInvOpPattern::matchAndRewrite(), ConvertMulAddFToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulAddToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulFToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertMulIToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcastAIE2p::matchAndRewrite(), ConvertVectorFMAOpToAIEVecFMAElemOpPattern::matchAndRewrite(), FoldVectorExtractAndSplatToAIEBroadcast::matchAndRewrite(), LowerVectorAddOrSubOpToAIEVecAddElemOrSubElemOp< arith::AddIOp, aievec::AddElemOp >::matchAndRewrite(), LowerVectorCmpOpToAIEVecCmpOp< arith::CmpIOp, CmpIPredicate >::matchAndRewrite(), LowerVectorMinMaxOpToAIEVecMinMaxOp< arith::MinSIOp, aievec::MinOp >::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2P::matchAndRewrite(), LowerVectorReductionAddFloatOp::matchAndRewrite(), LowerVectorReductionAddIntOp::matchAndRewrite(), LowerVectorReductionMaxOp::matchAndRewrite(), LowerVectorReductionMinOp::matchAndRewrite(), LowerVectorSelectOpToAIEVecSelOp::matchAndRewrite(), ShiftClampTruncToSRSPattern::matchAndRewrite(), xilinx::aievec::AccFloatUnaryOpAIE2pConversion< SrcOpTy, IntrOpTy >::matchAndRewrite(), xilinx::aievec::BroadcastScalarOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::BroadcastScalarOpConversion::matchAndRewrite(), xilinx::aievec::CmpOpConversionBase< xllvm::VectorMaxLtBf16IntrOp, xllvm::VectorMinGeBf16IntrOp, xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp, xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp >::matchAndRewrite(), xilinx::aievec::ConcatOpConversion::matchAndRewrite(), xilinx::aievec::ExpOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExtOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExtOpConversion::matchAndRewrite(), xilinx::aievec::ExtractElemOpConversion::matchAndRewrite(), xilinx::aievec::FdivOpConversion::matchAndRewrite(), xilinx::aievec::InvOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MaxOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MaxOpConversion::matchAndRewrite(), xilinx::aievec::MinOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MinOpConversion::matchAndRewrite(), xilinx::aievec::RsqrtOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::SelOpConversionBase< xllvm::VectorSel16IntrOp, xllvm::VectorSel32IntrOp >::matchAndRewrite(), xilinx::aievec::ShiftOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ShiftOpConversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2Conversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UnpackI4OpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UPDOpConversion::matchAndRewrite(), xilinx::aievec::UPSOpAIE2Conversion::matchAndRewrite(), and xilinx::aievec::UPSOpAIE2pConversion::matchAndRewrite().
|
inline |
Definition at line 79 of file AIEVecUtils.h.
References AIE2.
Referenced by ComputeExpOpByLUTLLVMPattern::matchAndRewrite(), ComputeExpOpByLUTPattern::matchAndRewrite(), ComputeNegOpPattern::matchAndRewrite(), ComputeRsqrtOpLLVMAIE2Pattern::matchAndRewrite(), ComputeSignedIntRightShiftOpPattern::matchAndRewrite(), ConvertMulAddToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulAddToAIEVecFMAOpPattern::matchAndRewrite(), ConvertMulFToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertMulIToAIEVecMulElemOpPattern::matchAndRewrite(), LowerExtOpPattern< arith::ExtFOp >::matchAndRewrite(), LowerScalarShRSIToAIEVecUPSSRS::matchAndRewrite(), LowerTruncOpPattern< arith::TruncFOp >::matchAndRewrite(), LowerVectorAddOrSubOpToAIEVecAddElemOrSubElemOp< arith::AddIOp, aievec::AddElemOp >::matchAndRewrite(), LowerVectorMulIOpToAIEVecMulOp::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2P::matchAndRewrite(), and ShiftClampTruncToSRSPattern::matchAndRewrite().
|
inline |
Definition at line 65 of file AIEVecUtils.h.
References getElementSizeInBits(), and getVectorLaneSize().
Referenced by xilinx::aievec::UPDOpConversion::matchAndRewrite().
| bool xilinx::aievec::isAIE2POnlyShuffleMode | ( | ShuffleMode | mode | ) |
Definition at line 1473 of file AIEVecOps.cpp.
|
inline |
Definition at line 72 of file AIEVecUtils.h.
|
inline |
Definition at line 234 of file AIEVecUtils.h.
Referenced by isAssumingNoImplicitBroadcastOfDynamicSizes(), and DynamicSizeNoImplicitBroadcastPattern::matchAndRewrite().
|
inline |
Definition at line 245 of file AIEVecUtils.h.
References isAssumingNoImplicitBroadcastOfDynamicSizes().
|
inline |
Definition at line 38 of file AIEVecUtils.h.
| void xilinx::aievec::populateAIE2PShufflePlannerPatterns | ( | mlir::RewritePatternSet & | patterns, |
| std::shared_ptr< AIE2PShufflePlanner > | planner ) |
| void xilinx::aievec::populateAIEVecConvOpTransformationPatterns | ( | mlir::RewritePatternSet & | patterns, |
| mlir::AnalysisManager & | am, | ||
| unsigned | shiftParam ) |
| void xilinx::aievec::populateAIEVecConvOpTransformationPatterns | ( | RewritePatternSet & | patterns, |
| AnalysisManager & | am, | ||
| unsigned | shiftParam ) |
Definition at line 515 of file FoldMulAddChainToConvOp.cpp.
Referenced by AIEVecConvOpTransformationPass::runOnOperation().
| void xilinx::aievec::populateAIEVecToLLVMAIE2ConversionPatterns | ( | mlir::LLVMTypeConverter & | converter, |
| mlir::RewritePatternSet & | patterns ) |
Referenced by populateAIEVecToLLVMConversionPatterns().
| void xilinx::aievec::populateAIEVecToLLVMAIE2pConversionPatterns | ( | mlir::LLVMTypeConverter & | converter, |
| mlir::RewritePatternSet & | patterns ) |
Definition at line 5323 of file AIEVecToLLVM.cpp.
References populateAIEVecToLLVMAIE2pConversionPatterns().
Referenced by populateAIEVecToLLVMAIE2pConversionPatterns(), and populateAIEVecToLLVMConversionPatterns().
| void xilinx::aievec::populateAIEVecToLLVMCommonConversionPatterns | ( | mlir::LLVMTypeConverter & | converter, |
| mlir::RewritePatternSet & | patterns ) |
Definition at line 5217 of file AIEVecToLLVM.cpp.
References populateAIEVecToLLVMCommonConversionPatterns().
Referenced by populateAIEVecToLLVMCommonConversionPatterns(), and populateAIEVecToLLVMConversionPatterns().
| void xilinx::aievec::populateAIEVecToLLVMConversionPatterns | ( | mlir::LLVMTypeConverter & | converter, |
| mlir::RewritePatternSet & | patterns, | ||
| Aie2Fp32Emulation | aie2Fp32EmulationOption, | ||
| llvm::StringRef | aieTarget ) |
| void xilinx::aievec::populateAIEVecToLLVMConversionPatterns | ( | mlir::LLVMTypeConverter & | converter, |
| mlir::RewritePatternSet & | patterns, | ||
| Aie2Fp32Emulation | aie2Fp32EmulationOption, | ||
| StringRef | aieTarget ) |
Definition at line 5357 of file AIEVecToLLVM.cpp.
References populateAIEVecToLLVMAIE2ConversionPatterns(), populateAIEVecToLLVMAIE2pConversionPatterns(), populateAIEVecToLLVMCommonConversionPatterns(), and populateAIEVecToLLVMConversionPatterns().
| void xilinx::aievec::registerAIEVecPipelines | ( | ) |
Register all pipelines for the AIE Vector dialect.
Definition at line 144 of file ConvertVectorToAIEVec.cpp.
References buildCanonicalizeVectorForAIEVec(), buildConvertVectorToAIEVec(), buildDynamicSizeNoImplicitBroadcastPass(), buildLowerVectorToAIEVec(), and buildOptimizeAIEVec().
Referenced by aieRegisterAllPasses().
| void xilinx::aievec::registerTransformDialectExtension | ( | mlir::DialectRegistry & | registry | ) |
| bool xilinx::aievec::simulateShufflePlan | ( | const ShuffleGather & | gather, |
| const ShufflePlan & | plan ) |
Definition at line 738 of file AIE2PShufflePlanner.cpp.
References xilinx::aievec::ShuffleGather::canSplat, xilinx::aievec::ShuffleGather::elemBits, getShuffleModeBytePermutation(), xilinx::aievec::ShufflePlan::nodes, xilinx::aievec::ShuffleGather::numLabels(), xilinx::aievec::ShufflePlan::results, xilinx::aievec::ShuffleGather::sourceIsSplat, xilinx::aievec::ShuffleGather::sourceLanes, xilinx::aievec::ShuffleGather::sourceOffset(), and xilinx::aievec::ShuffleGather::target.
Referenced by xilinx::aievec::AIE2PShufflePlanner::candidates().