MLIR-AIE 1.4.5.dev
AIEGenerateColumnControlOverlayPass Struct Reference
Inheritance diagram for AIEGenerateColumnControlOverlayPass:
Collaboration diagram for AIEGenerateColumnControlOverlayPass:

Public Types

using CtrlFlowKey = std::tuple<int, int, int, int, int, int, int, int, int>

Public Member Functions

void getDependentDialects (DialectRegistry &registry) const override
void runOnOperation () override
LogicalResult createOverlayDevice (ModuleOp module, OpBuilder &builder, ArrayRef< DeviceOp > participating, const llvm::SmallSet< AIE::TileID, 4 > &tokenTiles)
LogicalResult applyOverlayToDevice (DeviceOp device, const llvm::SmallSet< AIE::TileID, 4 > &tokenTiles)
bool hasRoutedResponses (DeviceOp device, DenseMap< TileID, int > &tileIDMap)
bool deviceHasControlOverlay (DeviceOp device)
AIE::PacketFlowOp createPacketFlowOp (OpBuilder &builder, Location loc, int &flowID, Value source, xilinx::AIE::WireBundle sourceBundle, uint32_t sourceChannel, Value dest, xilinx::AIE::WireBundle destBundle, uint32_t destChannel, mlir::BoolAttr keep_pkt_header=nullptr, mlir::BoolAttr ctrl_pkt_flow=nullptr)
SmallVector< int > getAvailableShimChans (DeviceOp device, TileOp shimTile, WireBundle shimWireBundle, bool isShimMM2S)
LogicalResult generatePacketFlowsForControl (OpBuilder builder, DeviceOp device, TileOp shimTile, WireBundle shimWireBundle, const SmallVector< AIE::TileOp > &ctrlTiles, WireBundle ctrlWireBundle, int coreOrMemChanId, DenseMap< TileID, int > tileIDMap, bool isShimMM2S)
AIE::PacketFlowOp getPktFlowWithSameSrcOrDst (DeviceOp device, TileOp srcTile, WireBundle srcBundle, int srcChan, TileOp destTile, WireBundle destBundle, int destChan)

Static Public Member Functions

static void collectTileUnion (ArrayRef< DeviceOp > devices, llvm::SmallSetVector< AIE::TileID, 8 > &unionTiles, llvm::DenseMap< AIE::TileID, AIE::TileOp > &prototypeTile)
static void cloneMissingTiles (DeviceOp device, const llvm::SmallSetVector< AIE::TileID, 8 > &unionTiles, const llvm::DenseMap< AIE::TileID, AIE::TileOp > &prototypeTile)
static void shareTilesAcrossDevices (ArrayRef< DeviceOp > devices)
static llvm::SmallSet< AIE::TileID, 4 > collectTokenIssuingTiles (ArrayRef< DeviceOp > devices)
static bool deviceOptedOut (DeviceOp device)
static std::optional< CtrlFlowKey > tryGetCtrlFlowKey (int id, Value srcTileValue, WireBundle srcBundle, int srcChan, Value destTileValue, WireBundle destBundle, int destChan)
static std::map< CtrlFlowKey, AIE::PacketFlowOp > collectExistingCtrlFlows (DeviceOp device)
static int getControllerID (TileOp tile, DenseMap< TileID, int > &tileIDMap)
static std::string getCtrlPktAllocName (int col, bool isShimMM2S, int chan)
static bool hasRoutedPacket (DeviceOp device, int pktID, TileID from, ArrayRef< Port > startPorts, TileID to, Port toPort)
static bool hasRoutedResponse (DeviceOp device, TileOp src, DenseMap< TileID, int > &tileIDMap)
static bool hasRoutedRequest (DeviceOp device, TileOp shimTile, int shimChan, TileOp dest, DenseMap< TileID, int > &tileIDMap)
static bool isRoutedThroughOnly (TileOp tile)
static bool hasRoutedRequests (DeviceOp device, DenseMap< TileID, int > &tileIDMap)

Detailed Description

Definition at line 130 of file AIEGenerateColumnControlOverlay.cpp.

Member Typedef Documentation

◆ CtrlFlowKey

using AIEGenerateColumnControlOverlayPass::CtrlFlowKey = std::tuple<int, int, int, int, int, int, int, int, int>

Definition at line 449 of file AIEGenerateColumnControlOverlay.cpp.

Member Function Documentation

◆ applyOverlayToDevice()

LogicalResult AIEGenerateColumnControlOverlayPass::applyOverlayToDevice ( DeviceOp device,
const llvm::SmallSet< AIE::TileID, 4 > & tokenTiles )
inline

Definition at line 298 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by runOnOperation().

◆ cloneMissingTiles()

void AIEGenerateColumnControlOverlayPass::cloneMissingTiles ( DeviceOp device,
const llvm::SmallSetVector< AIE::TileID, 8 > & unionTiles,
const llvm::DenseMap< AIE::TileID, AIE::TileOp > & prototypeTile )
inlinestatic

Definition at line 221 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by shareTilesAcrossDevices().

◆ collectExistingCtrlFlows()

std::map< CtrlFlowKey, AIE::PacketFlowOp > AIEGenerateColumnControlOverlayPass::collectExistingCtrlFlows ( DeviceOp device)
inlinestatic

Definition at line 481 of file AIEGenerateColumnControlOverlay.cpp.

◆ collectTileUnion()

void AIEGenerateColumnControlOverlayPass::collectTileUnion ( ArrayRef< DeviceOp > devices,
llvm::SmallSetVector< AIE::TileID, 8 > & unionTiles,
llvm::DenseMap< AIE::TileID, AIE::TileOp > & prototypeTile )
inlinestatic

Definition at line 206 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by shareTilesAcrossDevices().

◆ collectTokenIssuingTiles()

llvm::SmallSet< AIE::TileID, 4 > AIEGenerateColumnControlOverlayPass::collectTokenIssuingTiles ( ArrayRef< DeviceOp > devices)
inlinestatic

Definition at line 409 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by runOnOperation().

◆ createOverlayDevice()

LogicalResult AIEGenerateColumnControlOverlayPass::createOverlayDevice ( ModuleOp module,
OpBuilder & builder,
ArrayRef< DeviceOp > participating,
const llvm::SmallSet< AIE::TileID, 4 > & tokenTiles )
inline

Definition at line 249 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by runOnOperation().

◆ createPacketFlowOp()

AIE::PacketFlowOp AIEGenerateColumnControlOverlayPass::createPacketFlowOp ( OpBuilder & builder,
Location loc,
int & flowID,
Value source,
xilinx::AIE::WireBundle sourceBundle,
uint32_t sourceChannel,
Value dest,
xilinx::AIE::WireBundle destBundle,
uint32_t destChannel,
mlir::BoolAttr keep_pkt_header = nullptr,
mlir::BoolAttr ctrl_pkt_flow = nullptr )
inline

Definition at line 738 of file AIEGenerateColumnControlOverlay.cpp.

◆ deviceHasControlOverlay()

bool AIEGenerateColumnControlOverlayPass::deviceHasControlOverlay ( DeviceOp device)
inline

Definition at line 730 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by runOnOperation().

◆ deviceOptedOut()

bool AIEGenerateColumnControlOverlayPass::deviceOptedOut ( DeviceOp device)
inlinestatic

Definition at line 439 of file AIEGenerateColumnControlOverlay.cpp.

Referenced by runOnOperation().

◆ generatePacketFlowsForControl()

LogicalResult AIEGenerateColumnControlOverlayPass::generatePacketFlowsForControl ( OpBuilder builder,
DeviceOp device,
TileOp shimTile,
WireBundle shimWireBundle,
const SmallVector< AIE::TileOp > & ctrlTiles,
WireBundle ctrlWireBundle,
int coreOrMemChanId,
DenseMap< TileID, int > tileIDMap,
bool isShimMM2S )
inline

Definition at line 797 of file AIEGenerateColumnControlOverlay.cpp.

◆ getAvailableShimChans()

SmallVector< int > AIEGenerateColumnControlOverlayPass::getAvailableShimChans ( DeviceOp device,
TileOp shimTile,
WireBundle shimWireBundle,
bool isShimMM2S )
inline

Definition at line 762 of file AIEGenerateColumnControlOverlay.cpp.

◆ getControllerID()

int AIEGenerateColumnControlOverlayPass::getControllerID ( TileOp tile,
DenseMap< TileID, int > & tileIDMap )
inlinestatic

Definition at line 500 of file AIEGenerateColumnControlOverlay.cpp.

◆ getCtrlPktAllocName()

std::string AIEGenerateColumnControlOverlayPass::getCtrlPktAllocName ( int col,
bool isShimMM2S,
int chan )
inlinestatic

Definition at line 508 of file AIEGenerateColumnControlOverlay.cpp.

◆ getDependentDialects()

void AIEGenerateColumnControlOverlayPass::getDependentDialects ( DialectRegistry & registry) const
inlineoverride

Definition at line 135 of file AIEGenerateColumnControlOverlay.cpp.

◆ getPktFlowWithSameSrcOrDst()

AIE::PacketFlowOp AIEGenerateColumnControlOverlayPass::getPktFlowWithSameSrcOrDst ( DeviceOp device,
TileOp srcTile,
WireBundle srcBundle,
int srcChan,
TileOp destTile,
WireBundle destBundle,
int destChan )
inline

Definition at line 903 of file AIEGenerateColumnControlOverlay.cpp.

◆ hasRoutedPacket()

bool AIEGenerateColumnControlOverlayPass::hasRoutedPacket ( DeviceOp device,
int pktID,
TileID from,
ArrayRef< Port > startPorts,
TileID to,
Port toPort )
inlinestatic

Definition at line 520 of file AIEGenerateColumnControlOverlay.cpp.

◆ hasRoutedRequest()

bool AIEGenerateColumnControlOverlayPass::hasRoutedRequest ( DeviceOp device,
TileOp shimTile,
int shimChan,
TileOp dest,
DenseMap< TileID, int > & tileIDMap )
inlinestatic

Definition at line 602 of file AIEGenerateColumnControlOverlay.cpp.

◆ hasRoutedRequests()

bool AIEGenerateColumnControlOverlayPass::hasRoutedRequests ( DeviceOp device,
DenseMap< TileID, int > & tileIDMap )
inlinestatic

Definition at line 688 of file AIEGenerateColumnControlOverlay.cpp.

◆ hasRoutedResponse()

bool AIEGenerateColumnControlOverlayPass::hasRoutedResponse ( DeviceOp device,
TileOp src,
DenseMap< TileID, int > & tileIDMap )
inlinestatic

Definition at line 589 of file AIEGenerateColumnControlOverlay.cpp.

◆ hasRoutedResponses()

bool AIEGenerateColumnControlOverlayPass::hasRoutedResponses ( DeviceOp device,
DenseMap< TileID, int > & tileIDMap )
inline

Definition at line 660 of file AIEGenerateColumnControlOverlay.cpp.

◆ isRoutedThroughOnly()

bool AIEGenerateColumnControlOverlayPass::isRoutedThroughOnly ( TileOp tile)
inlinestatic

Definition at line 624 of file AIEGenerateColumnControlOverlay.cpp.

◆ runOnOperation()

void AIEGenerateColumnControlOverlayPass::runOnOperation ( )
inlineoverride

◆ shareTilesAcrossDevices()

void AIEGenerateColumnControlOverlayPass::shareTilesAcrossDevices ( ArrayRef< DeviceOp > devices)
inlinestatic

Definition at line 237 of file AIEGenerateColumnControlOverlay.cpp.

References cloneMissingTiles(), and collectTileUnion().

Referenced by runOnOperation().

◆ tryGetCtrlFlowKey()

std::optional< CtrlFlowKey > AIEGenerateColumnControlOverlayPass::tryGetCtrlFlowKey ( int id,
Value srcTileValue,
WireBundle srcBundle,
int srcChan,
Value destTileValue,
WireBundle destBundle,
int destChan )
inlinestatic

Definition at line 457 of file AIEGenerateColumnControlOverlay.cpp.


The documentation for this struct was generated from the following file: