MLIR-AIE
|
#include "aie/Dialect/AIE/IR/AIEDialect.h"
#include "aie/Dialect/AIE/Transforms/AIEPasses.h"
#include "mlir/IR/Attributes.h"
Go to the source code of this file.
Classes | |
struct | BankLimits |
struct | AIEAssignBufferAddressesPass |
Macros | |
#define | DEBUG_TYPE "aie-assign-buffers" |
Typedefs | |
typedef struct BankLimits | BankLimits |
Functions | |
LogicalResult | checkAndPrintOverflow (TileOp tile, int address, int maxDataMemorySize, int stacksize, SmallVector< BufferOp > &buffers) |
LogicalResult | basicAllocation (TileOp tile) |
void | fillBankLimits (int numBanks, int bankSize, std::vector< BankLimits > &bankLimits) |
void | setAndUpdateAddressInBank (BufferOp buffer, int64_t start_addr, int64_t end_addr, std::vector< int64_t > &nextAddrInBanks) |
FailureOr< bool > | checkAndAddBufferWithAddress (BufferOp buffer, int numBanks, std::vector< int64_t > &nextAddrInBanks, std::vector< BankLimits > &bankLimits) |
FailureOr< bool > | checkAndAddBufferWithMemBank (BufferOp buffer, int numBanks, std::vector< int64_t > &nextAddrInBanks, std::vector< BankLimits > &bankLimits) |
void | printMemMap (TileOp tile, SmallVector< BufferOp > &allocatedBuffers, SmallVector< BufferOp > &preAllocatedBuffers, int numBanks, std::vector< BankLimits > &bankLimits, int stacksize) |
int | setBufferAddress (BufferOp buffer, int numBanks, int &startBankIndex, std::vector< int64_t > &nextAddrInBanks, std::vector< BankLimits > &bankLimits) |
LogicalResult | checkAndPrintOverflow (TileOp tile, int numBanks, int stacksize, SmallVector< BufferOp > &allBuffers, std::vector< int64_t > &nextAddrInBanks, std::vector< BankLimits > &bankLimits) |
void | deAllocationBuffers (SmallVector< BufferOp > &buffers) |
LogicalResult | simpleBankAwareAllocation (TileOp tile) |
#define DEBUG_TYPE "aie-assign-buffers" |
Definition at line 16 of file AIEAssignBuffers.cpp.
typedef struct BankLimits BankLimits |
LogicalResult basicAllocation | ( | TileOp | tile | ) |
Definition at line 54 of file AIEAssignBuffers.cpp.
References checkAndPrintOverflow(), and xilinx::AIE::getTargetModel().
Referenced by AIEAssignBufferAddressesPass::runOnOperation().
FailureOr< bool > checkAndAddBufferWithAddress | ( | BufferOp | buffer, |
int | numBanks, | ||
std::vector< int64_t > & | nextAddrInBanks, | ||
std::vector< BankLimits > & | bankLimits | ||
) |
Definition at line 166 of file AIEAssignBuffers.cpp.
Referenced by simpleBankAwareAllocation().
FailureOr< bool > checkAndAddBufferWithMemBank | ( | BufferOp | buffer, |
int | numBanks, | ||
std::vector< int64_t > & | nextAddrInBanks, | ||
std::vector< BankLimits > & | bankLimits | ||
) |
Definition at line 197 of file AIEAssignBuffers.cpp.
References setAndUpdateAddressInBank().
Referenced by simpleBankAwareAllocation().
LogicalResult checkAndPrintOverflow | ( | TileOp | tile, |
int | address, | ||
int | maxDataMemorySize, | ||
int | stacksize, | ||
SmallVector< BufferOp > & | buffers | ||
) |
Definition at line 25 of file AIEAssignBuffers.cpp.
Referenced by basicAllocation(), and simpleBankAwareAllocation().
LogicalResult checkAndPrintOverflow | ( | TileOp | tile, |
int | numBanks, | ||
int | stacksize, | ||
SmallVector< BufferOp > & | allBuffers, | ||
std::vector< int64_t > & | nextAddrInBanks, | ||
std::vector< BankLimits > & | bankLimits | ||
) |
Definition at line 294 of file AIEAssignBuffers.cpp.
void deAllocationBuffers | ( | SmallVector< BufferOp > & | buffers | ) |
Definition at line 345 of file AIEAssignBuffers.cpp.
Referenced by simpleBankAwareAllocation().
void fillBankLimits | ( | int | numBanks, |
int | bankSize, | ||
std::vector< BankLimits > & | bankLimits | ||
) |
Definition at line 139 of file AIEAssignBuffers.cpp.
Referenced by simpleBankAwareAllocation().
void printMemMap | ( | TileOp | tile, |
SmallVector< BufferOp > & | allocatedBuffers, | ||
SmallVector< BufferOp > & | preAllocatedBuffers, | ||
int | numBanks, | ||
std::vector< BankLimits > & | bankLimits, | ||
int | stacksize | ||
) |
Definition at line 214 of file AIEAssignBuffers.cpp.
Referenced by simpleBankAwareAllocation().
void setAndUpdateAddressInBank | ( | BufferOp | buffer, |
int64_t | start_addr, | ||
int64_t | end_addr, | ||
std::vector< int64_t > & | nextAddrInBanks | ||
) |
Definition at line 151 of file AIEAssignBuffers.cpp.
Referenced by checkAndAddBufferWithMemBank(), and setBufferAddress().
int setBufferAddress | ( | BufferOp | buffer, |
int | numBanks, | ||
int & | startBankIndex, | ||
std::vector< int64_t > & | nextAddrInBanks, | ||
std::vector< BankLimits > & | bankLimits | ||
) |
Definition at line 263 of file AIEAssignBuffers.cpp.
References setAndUpdateAddressInBank().
Referenced by simpleBankAwareAllocation().
LogicalResult simpleBankAwareAllocation | ( | TileOp | tile | ) |
Definition at line 352 of file AIEAssignBuffers.cpp.
References checkAndAddBufferWithAddress(), checkAndAddBufferWithMemBank(), checkAndPrintOverflow(), deAllocationBuffers(), fillBankLimits(), xilinx::AIE::getTargetModel(), printMemMap(), and setBufferAddress().
Referenced by AIEAssignBufferAddressesPass::runOnOperation().