MLIR-AIE
|
#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 () | |
Definition at line 73 of file IntervalReuse.h.
|
inline |
Definition at line 139 of file IntervalReuse.h.
|
inline |
Definition at line 141 of file IntervalReuse.h.
void IntervalReuse::coalesceIntervals | ( | ) |
Definition at line 248 of file IntervalReuse.cpp.
std::pair< int32_t, int32_t > IntervalReuse::getAccessExtent | ( | mlir::Operation * | op | ) |
Definition at line 76 of file IntervalReuse.cpp.
std::pair< int32_t, int32_t > IntervalReuse::getInterval | ( | mlir::Operation * | op | ) |
Definition at line 93 of file IntervalReuse.cpp.
Referenced by computeStartInAIEVec(), and getIntervalWidth().
int32_t IntervalReuse::getIntervalWidth | ( | mlir::Operation * | op | ) |
Definition at line 115 of file IntervalReuse.cpp.
References getInterval().
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.
void IntervalReuse::markLHSOperandVec | ( | mlir::Operation * | op | ) |
Definition at line 101 of file IntervalReuse.cpp.
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.
void IntervalReuse::setAccessExtent | ( | mlir::Operation * | op, |
std::pair< int32_t, int32_t > & | extent | ||
) |
Definition at line 84 of file IntervalReuse.cpp.