MLIR-AIE
Namespaces | Classes | Typedefs | Enumerations | Functions
xilinx::aievec Namespace Reference

Namespaces

namespace  aie1
 

Classes

class  AddElemOpAIE2Conversion
 
class  AddElemOpAIE2pConversion
 
class  AddOpConversion
 
struct  AIEVecConvAnalysis
 
class  AIEVecType
 
class  BroadcastOpConversion
 
class  BroadcastScalarOpAIE2pConversion
 
class  BroadcastScalarOpConversion
 
struct  BufferParams
 
struct  CanonicalizeVectorForAIEVecOptions
 Options for the "canonicalize-vector-for-aievec" pipeline. More...
 
class  CmpOpConversionBase
 
class  ConcatOpAIE2pConversion
 
class  ConcatOpConversion
 
struct  ConvertAIEVecToLLVMPass
 
struct  ConvertVectorToAIEVecOptions
 Options for the "convert-vector-to-aievec" pipeline. More...
 
class  ExpOpAIE2pConversion
 
class  ExtOpAIE2pConversion
 
class  ExtOpConversion
 
class  ExtractElemOpAIE2pConversion
 
class  ExtractElemOpConversion
 
class  FdivOpConversion
 
class  FMAElemOpAIE2pConversion
 
class  FMAElemOpConversion
 
class  FMAOpConversion
 
class  FoldAIECastOps
 
class  FoldAIECastOpsAIE2p
 
class  IntervalReuse
 
class  InvOpAIE2pConversion
 
struct  LowerVectorToAIEVecOptions
 Options for the "lower-vector-to-aievec" pipeline. More...
 
class  MatMulOpAIE2pConversion
 
class  MatMulOpConversion
 
class  MaxOpAIE2pConversion
 
class  MaxOpConversion
 
class  MinOpAIE2pConversion
 
class  MinOpConversion
 
class  MulElemOpAIE2pConversion
 
class  MulElemOpConversion
 
class  MulOpConversion
 
struct  OptimizeAIEVecOptions
 Options for the "optimize-aievec" pipeline. More...
 
class  PackOpConversion
 
class  RsqrtOpAIE2pConversion
 
class  SelectOpConversion
 
class  SelOpConversionBase
 
class  ShiftOpAIE2pConversion
 
class  ShiftOpConversion
 
class  ShuffleOpConversion
 
class  SRSOpAIE2Conversion
 
class  SRSOpAIE2pConversion
 
class  SubElemOpAIE2Conversion
 
class  SubElemOpAIE2pConversion
 
class  SubOpConversion
 
class  TanhOpAIE2pConversion
 
class  UnpackOpConversion
 
class  UPDOpConversion
 
class  UPSOpAIE2Conversion
 
class  UPSOpAIE2pConversion
 

Typedefs

using CmpOpConversion = CmpOpConversionBase< xllvm::VectorMaxLtBf16IntrOp, xllvm::VectorMinGeBf16IntrOp, xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp, xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp >
 
using CmpOpAIE2pConversion = CmpOpConversionBase< xllvm::VectorMaxLtBf16AIE2pIntrOp, xllvm::VectorMinGeBf16AIE2pIntrOp, xllvm::VectorMaxLt32AIE2pIntrOp, xllvm::VectorMinGe32AIE2pIntrOp, xllvm::VectorMaxLt16AIE2pIntrOp, xllvm::VectorMinGe16AIE2pIntrOp >
 
using SelOpConversion = SelOpConversionBase< xllvm::VectorSel16IntrOp, xllvm::VectorSel32IntrOp >
 
using SelOpAIE2pConversion = SelOpConversionBase< xllvm::VectorSel16AIE2pIntrOp, xllvm::VectorSel32AIE2pIntrOp >
 

Enumerations

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 ()
 
void registerAIEVecToCppTranslation ()
 
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 emulates f32 vector arithmetic using bf16 operations.
 
void registerTransformDialectExtension (mlir::DialectRegistry &registry)
 
std::unique_ptr< mlir::Pass > createAIEVectorizePass ()
 
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)
 
mlir::LogicalResult translateAIEVecToCpp (mlir::Operation *op, bool aie2, mlir::raw_ostream &os)
 Translates the AIE vector dialect MLIR to C++ code.
 
std::string getVectorTypeString (VectorType type, bool abbrev=false, bool acc=false)
 
std::string getMulOrFMAIntrinsicName (Operation *op)
 
uint32_t encodeSquare (uint32_t square)
 
void encodeConf (uint32_t conf[2], const BufferParams &x, const BufferParams &z, bool sub)
 
void populateAIEVecToLLVMAIE2ConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption)
 
void populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, StringRef aieTarget)
 
SmallVector< NamedAttribute > buildFMAOpSplatAttrForElemTy (aievec::aie1::FMAOp fmaOp, int64_t bcastPos, int64_t step=1)
 
void configureAIEVecConvOpTransformationLegalizations (ConversionTarget &target, AnalysisManager &am, TargetBackend backend)
 
void populateAIEVecConvOpTransformationPatterns (RewritePatternSet &patterns, AnalysisManager &am, unsigned shiftParam, TargetBackend backend)
 
void configureAIEVecConvOpTransformationLegalizations (mlir::ConversionTarget &target, mlir::AnalysisManager &am, TargetBackend backend)
 
void populateAIEVecConvOpTransformationPatterns (mlir::RewritePatternSet &patterns, mlir::AnalysisManager &am, unsigned shiftParam, TargetBackend backend)
 
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)
 

Typedef Documentation

◆ CmpOpAIE2pConversion

using xilinx::aievec::CmpOpAIE2pConversion = typedef CmpOpConversionBase< xllvm::VectorMaxLtBf16AIE2pIntrOp, xllvm::VectorMinGeBf16AIE2pIntrOp, xllvm::VectorMaxLt32AIE2pIntrOp, xllvm::VectorMinGe32AIE2pIntrOp, xllvm::VectorMaxLt16AIE2pIntrOp, xllvm::VectorMinGe16AIE2pIntrOp>

Definition at line 3655 of file AIEVecToLLVM.cpp.

◆ CmpOpConversion

using xilinx::aievec::CmpOpConversion = typedef CmpOpConversionBase<xllvm::VectorMaxLtBf16IntrOp, xllvm::VectorMinGeBf16IntrOp, xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp, xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp>

Definition at line 3649 of file AIEVecToLLVM.cpp.

◆ SelOpAIE2pConversion

using xilinx::aievec::SelOpAIE2pConversion = typedef SelOpConversionBase<xllvm::VectorSel16AIE2pIntrOp, xllvm::VectorSel32AIE2pIntrOp>

Definition at line 3754 of file AIEVecToLLVM.cpp.

◆ SelOpConversion

using xilinx::aievec::SelOpConversion = typedef SelOpConversionBase<xllvm::VectorSel16IntrOp, xllvm::VectorSel32IntrOp>

Definition at line 3751 of file AIEVecToLLVM.cpp.

Enumeration Type Documentation

◆ AIEArch

enum class xilinx::aievec::AIEArch
strong
Enumerator
AIE2 
AIE2p 

Definition at line 1593 of file AIEVecToLLVM.cpp.

Function Documentation

◆ buildCanonicalizeVectorForAIEVec()

void xilinx::aievec::buildCanonicalizeVectorForAIEVec ( mlir::OpPassManager &  pm,
const CanonicalizeVectorForAIEVecOptions options 
)

Referenced by registerAIEVecPipelines().

◆ buildConvertVectorToAIEVec()

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().

◆ buildDynamicSizeNoImplicitBroadcastPass()

void xilinx::aievec::buildDynamicSizeNoImplicitBroadcastPass ( mlir::OpPassManager &  pm)

Referenced by registerAIEVecPipelines().

◆ buildFMAOpSplatAttrForElemTy()

SmallVector< NamedAttribute > xilinx::aievec::buildFMAOpSplatAttrForElemTy ( aievec::aie1::FMAOp  fmaOp,
int64_t  bcastPos,
int64_t  step = 1 
)

◆ buildLowerVectorToAIEVec()

void xilinx::aievec::buildLowerVectorToAIEVec ( mlir::OpPassManager &  pm,
const LowerVectorToAIEVecOptions options 
)

Referenced by registerAIEVecPipelines().

◆ buildOptimizeAIEVec()

void xilinx::aievec::buildOptimizeAIEVec ( mlir::OpPassManager &  pm,
const OptimizeAIEVecOptions options 
)

Referenced by registerAIEVecPipelines().

◆ configureAIEVecConvOpTransformationLegalizations() [1/2]

void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations ( ConversionTarget &  target,
AnalysisManager &  am,
TargetBackend  backend 
)

◆ configureAIEVecConvOpTransformationLegalizations() [2/2]

void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations ( mlir::ConversionTarget &  target,
mlir::AnalysisManager &  am,
TargetBackend  backend 
)

◆ constructLinearizedAffineExprForUPDOp()

mlir::AffineExpr xilinx::aievec::constructLinearizedAffineExprForUPDOp ( UPDOp  updOp)
inline

Definition at line 151 of file AIEVecUtils.h.

References flattenedStridedExpr().

◆ createAIEVecConvolutionAnalysisPass()

std::unique_ptr< Pass > xilinx::aievec::createAIEVecConvolutionAnalysisPass ( )

Definition at line 603 of file FoldMulAddChainToConvOp.cpp.

◆ createAIEVectorizePass()

std::unique_ptr< Pass > xilinx::aievec::createAIEVectorizePass ( )

Definition at line 3069 of file AIEVectorize.cpp.

◆ createBF16EmulationPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createBF16EmulationPass ( )

Create a pass that emulates f32 vector arithmetic using bf16 operations.

Inserts arith.truncf/arith.extf around f32 vector ops to compute in bf16.

Definition at line 1090 of file VectorToVectorConversions.cpp.

◆ createConvertAIEVecToLLVMPass() [1/2]

std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass ( )

◆ createConvertAIEVecToLLVMPass() [2/2]

std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass ( const xilinx::ConvertAIEVecToLLVMOptions &  options)

Definition at line 5718 of file AIEVecToLLVM.cpp.

References createConvertAIEVecToLLVMPass().

◆ createCopyRemovalPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createCopyRemovalPass ( )

Create a pass that removes unnecessary Copy operations.

Definition at line 244 of file CopyRemoval.cpp.

◆ createDynamicSizeNoImplicitBroadcastPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createDynamicSizeNoImplicitBroadcastPass ( )

Definition at line 121 of file DynamicSizeNoImplicitBroadcast.cpp.

◆ createSplitVectorLoadUpsChainsPass()

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 337 of file SplitVectorLoadUpsChains.cpp.

◆ createVectorType()

mlir::VectorType xilinx::aievec::createVectorType ( unsigned  lanes,
mlir::Type  elementType 
)
inline

◆ encodeConf()

void xilinx::aievec::encodeConf ( uint32_t  conf[2],
const BufferParams x,
const BufferParams z,
bool  sub 
)

◆ encodeSquare()

uint32_t xilinx::aievec::encodeSquare ( uint32_t  square)

◆ extractBaseAndOffset()

std::pair< mlir::AffineExpr, int32_t > xilinx::aievec::extractBaseAndOffset ( mlir::AffineExpr  expr)
inline

Definition at line 206 of file AIEVecUtils.h.

◆ flattenedStridedExpr()

mlir::AffineExpr xilinx::aievec::flattenedStridedExpr ( llvm::ArrayRef< int64_t >  sizes,
llvm::ArrayRef< mlir::AffineExpr >  exprs,
mlir::MLIRContext *  context 
)
inline

Definition at line 111 of file AIEVecUtils.h.

Referenced by constructLinearizedAffineExprForUPDOp().

◆ getElementSizeInBits()

int32_t xilinx::aievec::getElementSizeInBits ( mlir::VectorType  type)
inline

◆ getFlattenedVectorType() [1/2]

mlir::VectorType xilinx::aievec::getFlattenedVectorType ( mlir::VectorType  vecTy)

◆ getFlattenedVectorType() [2/2]

VectorType xilinx::aievec::getFlattenedVectorType ( VectorType  vecTy)

Definition at line 146 of file Utils.cpp.

◆ getHexValue()

char xilinx::aievec::getHexValue ( int  val)
inline

Definition at line 31 of file AIEVecUtils.h.

◆ getMulOrFMAIntrinsicName()

std::string xilinx::aievec::getMulOrFMAIntrinsicName ( Operation *  op)

◆ getTransferReadAlignmentOffset() [1/4]

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 > xilinx::aievec::getTransferReadAlignmentOffset ( TransferReadLikeOp  readOp,
mlir::VectorType  vType,
int64_t  alignment 
)

◆ getTransferReadAlignmentOffset() [2/4]

template<typename TransferReadLikeOp , typename >
std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( TransferReadLikeOp  readOp,
VectorType  vType,
int64_t  alignment 
)

Definition at line 120 of file Utils.cpp.

◆ getTransferReadAlignmentOffset() [3/4]

template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( vector::TransferReadOp  readOp,
VectorType  vType,
int64_t  alignment 
)

◆ getTransferReadAlignmentOffset() [4/4]

template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( vector::TransferReadOp::Adaptor  readOp,
VectorType  vType,
int64_t  alignment 
)

◆ getVectorLaneSize()

unsigned xilinx::aievec::getVectorLaneSize ( mlir::VectorType  type)
inline

Definition at line 55 of file AIEVecUtils.h.

Referenced by xilinx::aievec::AddElemOpAIE2pConversion::decodeAddElemOp(), xilinx::aievec::MulElemOpAIE2pConversion::decodeMulElemOp(), xilinx::aievec::SubElemOpAIE2pConversion::decodeSubElemOp(), getMulOrFMAIntrinsicName(), getVectorSizeInBits(), getVectorTypeString(), xilinx::aievec::BroadcastScalarOpConversion::matchAndRewrite(), xilinx::aievec::BroadcastScalarOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::CmpOpConversionBase< MaxLtBf16IntrOp, MinGeBf16IntrOp, MaxLt32IntrOp, MinGe32IntrOp, MaxLt16IntrOp, MinGe16IntrOp >::matchAndRewrite(), xilinx::aievec::ConcatOpConversion::matchAndRewrite(), xilinx::aievec::ConcatOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExpOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExtractElemOpConversion::matchAndRewrite(), xilinx::aievec::ExtOpConversion::matchAndRewrite(), xilinx::aievec::ExtOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::InvOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MaxOpConversion::matchAndRewrite(), xilinx::aievec::MaxOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MinOpConversion::matchAndRewrite(), xilinx::aievec::MinOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::SelOpConversionBase< Sel16IntrOp, Sel32IntrOp >::matchAndRewrite(), xilinx::aievec::ShiftOpConversion::matchAndRewrite(), xilinx::aievec::ShiftOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2Conversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::TanhOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UPDOpConversion::matchAndRewrite(), xilinx::aievec::UPSOpAIE2Conversion::matchAndRewrite(), xilinx::aievec::UPSOpAIE2pConversion::matchAndRewrite(), ConvertMulAddFToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulAddToAIEVecFMAElemOpPattern::matchAndRewrite(), ComputeSigmoidOpPattern::matchAndRewrite(), xilinx::aievec::FdivOpConversion::matchAndRewrite(), ConvertDivFToAIEVecInvOpPattern::matchAndRewrite(), ConvertMulFToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertMulIToAIEVecMulElemOpPattern::matchAndRewrite(), ComputeNegOpPattern::matchAndRewrite(), LowerVectorSelectOpToAIEVecSelOp::matchAndRewrite(), ComputeSignedIntRightShiftOpPattern::matchAndRewrite(), ShiftClampTruncToSRSPattern::matchAndRewrite(), ComputeBxorAndBnegOpPattern::matchAndRewrite(), ComputeCeilOpPattern::matchAndRewrite(), ComputeErfOpPattern::matchAndRewrite(), ComputeExpOpByLUTLLVMPattern::matchAndRewrite(), ComputeFloorOpPattern::matchAndRewrite(), xilinx::aievec::RsqrtOpAIE2pConversion::matchAndRewrite(), ComputeRsqrtOpLLVMAIE2Pattern::matchAndRewrite(), ComputeRsqrtOpPattern::matchAndRewrite(), ComputeSqrtOpAIE2Pattern::matchAndRewrite(), ConvertMathTanhToAIEVecTanhOpPattern::matchAndRewrite(), ComputeTanhOpByLUTPattern::matchAndRewrite(), ComputeAbsOpPattern< SrcOpTy >::matchAndRewrite(), LowerVectorAddOrSubOpToAIEVecAddElemOrSubElemOp< SrcOpTy, DstOpTy >::matchAndRewrite(), LowerVectorMinMaxOpToAIEVecMinMaxOp< SrcOpTy, DstOpTy >::matchAndRewrite(), LowerVectorCmpOpToAIEVecCmpOp< SrcOpTy, CmpTy >::matchAndRewrite(), ComputeBandAndBorOpPattern< SrcOpTy, DstOpTy >::matchAndRewrite(), FoldVectorExtractAndSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcastAIE2p::matchAndRewrite(), ConvertVectorFMAOpToAIEVecFMAElemOpPattern::matchAndRewrite(), LowerVectorReductionMinOp::matchAndRewrite(), LowerVectorReductionMaxOp::matchAndRewrite(), LowerVectorReductionAddIntOp::matchAndRewrite(), LowerVectorReductionAddFloatOp::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2P::matchAndRewrite(), verifyMulFMAConvOp(), verifyMulFMAElemOp(), xilinx::aievec::aie1::verifyMulFMAOp(), and verifyPackUnpackOp().

◆ getVectorOpDestType()

mlir::VectorType xilinx::aievec::getVectorOpDestType ( mlir::VectorType  type,
bool  AIE2 
)
inline

◆ getVectorSizeInBits()

int32_t xilinx::aievec::getVectorSizeInBits ( mlir::VectorType  type)
inline

◆ getVectorTypeString()

std::string xilinx::aievec::getVectorTypeString ( VectorType  type,
bool  abbrev = false,
bool  acc = false 
)

◆ isAIEOp()

bool xilinx::aievec::isAIEOp ( mlir::Operation *  op)
inline

Definition at line 73 of file AIEVecUtils.h.

◆ isAssumingNoImplicitBroadcastOfDynamicSizes() [1/2]

bool xilinx::aievec::isAssumingNoImplicitBroadcastOfDynamicSizes ( mlir::Block *  block)
inline

◆ isAssumingNoImplicitBroadcastOfDynamicSizes() [2/2]

bool xilinx::aievec::isAssumingNoImplicitBroadcastOfDynamicSizes ( mlir::OpBuilder &  builder)
inline

Definition at line 246 of file AIEVecUtils.h.

References isAssumingNoImplicitBroadcastOfDynamicSizes().

◆ isPowerOfTwo()

bool xilinx::aievec::isPowerOfTwo ( int32_t  n)
inline

Definition at line 39 of file AIEVecUtils.h.

◆ populateAIEVecConvOpTransformationPatterns() [1/2]

void xilinx::aievec::populateAIEVecConvOpTransformationPatterns ( mlir::RewritePatternSet &  patterns,
mlir::AnalysisManager &  am,
unsigned  shiftParam,
TargetBackend  backend 
)

◆ populateAIEVecConvOpTransformationPatterns() [2/2]

void xilinx::aievec::populateAIEVecConvOpTransformationPatterns ( RewritePatternSet &  patterns,
AnalysisManager &  am,
unsigned  shiftParam,
TargetBackend  backend 
)

◆ populateAIEVecToLLVMAIE2ConversionPatterns() [1/2]

void xilinx::aievec::populateAIEVecToLLVMAIE2ConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns 
)

◆ populateAIEVecToLLVMAIE2ConversionPatterns() [2/2]

void xilinx::aievec::populateAIEVecToLLVMAIE2ConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns,
Aie2Fp32Emulation  aie2Fp32EmulationOption 
)

Definition at line 5528 of file AIEVecToLLVM.cpp.

References populateAIEVecToLLVMAIE2ConversionPatterns().

◆ populateAIEVecToLLVMAIE2pConversionPatterns()

void xilinx::aievec::populateAIEVecToLLVMAIE2pConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns 
)

◆ populateAIEVecToLLVMCommonConversionPatterns()

void xilinx::aievec::populateAIEVecToLLVMCommonConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns 
)

◆ populateAIEVecToLLVMConversionPatterns() [1/2]

void xilinx::aievec::populateAIEVecToLLVMConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns,
Aie2Fp32Emulation  aie2Fp32EmulationOption,
llvm::StringRef  aieTarget 
)

◆ populateAIEVecToLLVMConversionPatterns() [2/2]

void xilinx::aievec::populateAIEVecToLLVMConversionPatterns ( mlir::LLVMTypeConverter &  converter,
mlir::RewritePatternSet &  patterns,
Aie2Fp32Emulation  aie2Fp32EmulationOption,
StringRef  aieTarget 
)

◆ registerAIEVecPipelines()

void xilinx::aievec::registerAIEVecPipelines ( )

◆ registerAIEVecToCppTranslation()

void xilinx::aievec::registerAIEVecToCppTranslation ( )

Definition at line 43 of file TranslateRegistration.cpp.

References AIE2, and translateAIEVecToCpp().

◆ registerTransformDialectExtension()

void xilinx::aievec::registerTransformDialectExtension ( mlir::DialectRegistry &  registry)

◆ translateAIEVecToCpp()

mlir::LogicalResult xilinx::aievec::translateAIEVecToCpp ( mlir::Operation *  op,
bool  aie2,
mlir::raw_ostream &  os 
)

Translates the AIE vector dialect MLIR to C++ code.

Referenced by aieTranslateAIEVecToCpp(), and registerAIEVecToCppTranslation().