17#include "mlir/Dialect/SCF/IR/SCF.h"
18#include "mlir/Pass/Pass.h"
22#define GEN_PASS_CLASSES
23#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
25std::unique_ptr<mlir::OperationPass<DeviceOp>>
28std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
30std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
34std::unique_ptr<mlir::OperationPass<DeviceOp>>
37std::unique_ptr<mlir::OperationPass<mlir::func::FuncOp>>
40std::unique_ptr<mlir::OperationPass<DeviceOp>>
42std::unique_ptr<mlir::OperationPass<DeviceOp>>
45std::unique_ptr<mlir::OperationPass<DeviceOp>>
47std::unique_ptr<mlir::OperationPass<DeviceOp>>
52#define GEN_PASS_REGISTRATION
53#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
67 mlir::DenseMap<TileID, mlir::Operation *>
tiles;
77 typedef std::pair<mlir::Operation *, Port>
PhysPort;
80 WireBundle currDestBundle,
int currDestChannel,
81 TileID finalTile, WireBundle finalDestBundle,
82 int finalDestChannel);
Include the generated interface declarations.
std::unique_ptr< mlir::OperationPass< mlir::func::FuncOp > > createAIEVectorOptPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignTileCtrlIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIELowerCascadeFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEFindFlowsPass()
TileID { friend std::ostream &operator<<(std::ostream &os, const TileID &s) { os<< "TileID("<< s.col<< ", "<< s.row<< ")" TileID
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoStatefulTransformPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECoreToStandardPass()
std::map< TileID, SwitchSetting > SwitchSettings
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignLockIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIENormalizeAddressSpacesPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIERouteFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoRegisterProcessPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECanonicalizeDevicePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferAddressesPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIELocalizeLocksPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferDescriptorIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEPathfinderPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEGenerateColumnControlOverlayPass()
Overall Flow: rewrite switchboxes to assign unassigned connections, ensure this can be done concurren...
AIEPathfinderPass()=default
void runOnOperation() override
AIEPathfinderPass(DynamicTileAnalysis analyzer)
DynamicTileAnalysis analyzer
void runOnFlow(DeviceOp d)
void runOnPacketFlow(DeviceOp d, mlir::OpBuilder &builder)
mlir::DenseMap< TileID, mlir::Operation * > tiles
bool findPathToDest(SwitchSettings settings, TileID currTile, WireBundle currDestBundle, int currDestChannel, TileID finalTile, WireBundle finalDestBundle, int finalDestChannel)
std::pair< mlir::Operation *, Port > PhysPort