MLIR-AIE
Classes | Macros | Typedefs | Functions
AIEAssignBuffers.cpp File Reference
#include "aie/Dialect/AIE/IR/AIEDialect.h"
#include "aie/Dialect/AIE/Transforms/AIEPasses.h"
#include "mlir/IR/Attributes.h"
+ Include dependency graph for AIEAssignBuffers.cpp:

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)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aie-assign-buffers"

Definition at line 16 of file AIEAssignBuffers.cpp.

Typedef Documentation

◆ BankLimits

typedef struct BankLimits BankLimits

Function Documentation

◆ basicAllocation()

LogicalResult basicAllocation ( TileOp  tile)

◆ checkAndAddBufferWithAddress()

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

◆ checkAndAddBufferWithMemBank()

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

◆ checkAndPrintOverflow() [1/2]

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

◆ checkAndPrintOverflow() [2/2]

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.

◆ deAllocationBuffers()

void deAllocationBuffers ( SmallVector< BufferOp > &  buffers)

Definition at line 345 of file AIEAssignBuffers.cpp.

Referenced by simpleBankAwareAllocation().

◆ fillBankLimits()

void fillBankLimits ( int  numBanks,
int  bankSize,
std::vector< BankLimits > &  bankLimits 
)

Definition at line 139 of file AIEAssignBuffers.cpp.

Referenced by simpleBankAwareAllocation().

◆ printMemMap()

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

◆ setAndUpdateAddressInBank()

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

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

◆ simpleBankAwareAllocation()

LogicalResult simpleBankAwareAllocation ( TileOp  tile)