MLIR-AIE
Public Member Functions | List of all members
xilinx::aievec::IntervalReuse Class Reference

#include "aie/Dialect/AIEVec/Transforms/IntervalReuse.h"

Public Member Functions

bool potentialReuse (mlir::vector::TransferReadOp readOp, mlir::AffineExpr invariantBase, llvm::DenseMap< mlir::Block *, llvm::SmallVector< mlir::Operation *, 8 > > &blockToEnclosingLoops)
 
void insertInterval (mlir::vector::TransferReadOp readOp, llvm::DenseMap< mlir::Operation *, IntervalReuse * > &dataAccessToIntervalMap, int32_t offset, int32_t forLoopStepSize, bool isSplat=false, unsigned minVecSize=128)
 
int32_t getIntervalWidth (mlir::Operation *op)
 
std::pair< int32_t, int32_t > getAccessExtent (mlir::Operation *op)
 
void setAccessExtent (mlir::Operation *op, std::pair< int32_t, int32_t > &extent)
 
std::pair< int32_t, int32_t > getInterval (mlir::Operation *op)
 
void markLHSOperandVec (mlir::Operation *op)
 
void coalesceIntervals ()
 
 IntervalReuse (mlir::vector::TransferReadOp readOp, mlir::AffineExpr b)
 
 IntervalReuse ()
 

Detailed Description

Definition at line 73 of file IntervalReuse.h.

Constructor & Destructor Documentation

◆ IntervalReuse() [1/2]

xilinx::aievec::IntervalReuse::IntervalReuse ( mlir::vector::TransferReadOp  readOp,
mlir::AffineExpr  b 
)
inline

Definition at line 139 of file IntervalReuse.h.

◆ IntervalReuse() [2/2]

xilinx::aievec::IntervalReuse::IntervalReuse ( )
inline

Definition at line 141 of file IntervalReuse.h.

Member Function Documentation

◆ coalesceIntervals()

void IntervalReuse::coalesceIntervals ( )

Definition at line 248 of file IntervalReuse.cpp.

◆ getAccessExtent()

std::pair< int32_t, int32_t > IntervalReuse::getAccessExtent ( mlir::Operation *  op)

Definition at line 76 of file IntervalReuse.cpp.

◆ getInterval()

std::pair< int32_t, int32_t > IntervalReuse::getInterval ( mlir::Operation *  op)

Definition at line 93 of file IntervalReuse.cpp.

Referenced by computeStartInAIEVec(), and getIntervalWidth().

◆ getIntervalWidth()

int32_t IntervalReuse::getIntervalWidth ( mlir::Operation *  op)

Definition at line 115 of file IntervalReuse.cpp.

References getInterval().

◆ insertInterval()

void IntervalReuse::insertInterval ( mlir::vector::TransferReadOp  readOp,
llvm::DenseMap< mlir::Operation *, IntervalReuse * > &  dataAccessToIntervalMap,
int32_t  offset,
int32_t  forLoopStepSize,
bool  isSplat = false,
unsigned  minVecSize = 128 
)

Definition at line 166 of file IntervalReuse.cpp.

◆ markLHSOperandVec()

void IntervalReuse::markLHSOperandVec ( mlir::Operation *  op)

Definition at line 101 of file IntervalReuse.cpp.

◆ potentialReuse()

bool IntervalReuse::potentialReuse ( mlir::vector::TransferReadOp  readOp,
mlir::AffineExpr  invariantBase,
llvm::DenseMap< mlir::Block *, llvm::SmallVector< mlir::Operation *, 8 > > &  blockToEnclosingLoops 
)

Definition at line 124 of file IntervalReuse.cpp.

◆ setAccessExtent()

void IntervalReuse::setAccessExtent ( mlir::Operation *  op,
std::pair< int32_t, int32_t > &  extent 
)

Definition at line 84 of file IntervalReuse.cpp.


The documentation for this class was generated from the following files: