11#include "mlir/Conversion/AffineToStandard/AffineToStandard.h"
12#include "mlir/Pass/PassManager.h"
13#include "mlir/Pass/PassRegistry.h"
20 const AIEPlaceTilesOptions &options) {
25 OpPassManager &dpm = pm.nest<DeviceOp>();
35 bool packetSwObjFifos,
bool ctrlPktOverlay,
36 bool loadPdiToCtrlPkt,
bool skipObjectFifoVerify) {
37 pm.addPass(createLowerAffinePass());
45 AIEGenerateColumnControlOverlayOptions overlay;
46 overlay.clRouteShimDmaToTileCTRL = ctrlPktOverlay;
47 overlay.clEmitStandaloneOverlay = ctrlPktOverlay && loadPdiToCtrlPkt;
51 OpPassManager &dpm = pm.nest<DeviceOp>();
53 AIEObjectFifoUnrollOptions unroll;
54 unroll.clDefaultDynamic = dynamicObjFifos;
73 AIEAssignBufferAddressesOptions options;
74 options.clPlacementBudget = placementBudget;
79 OpPassManager &dpm = pm.nest<DeviceOp>();
81 AIERoutePathfinderFlowsOptions options;
82 options.clAllowDeadlockProne = allowDeadlockProne;
87 PassPipelineRegistration<AIEResourceStagesOptions>(
88 "aie-resource-stages",
89 "aiecc's placement, trace, lowering, buffer address and routing stages",
91 AIEPlaceTilesOptions place;
92 place.clPlacerType = options.
placer;
94 place.clSASeed = options.
saSeed;
std::unique_ptr< mlir::OperationPass< AIE::DeviceOp > > createAIEReserveRuntimeBDIDsPass()
void addBufferAddressStage(mlir::OpPassManager &pm, int64_t placementBudget)
void addRoutingStage(mlir::OpPassManager &pm, bool allowDeadlockProne)
void addPlacementStage(mlir::OpPassManager &pm, const AIE::AIEPlaceTilesOptions &options)
aiecc's stages that give a design its tiles, locks, BD IDs, buffers and routes, in its order.
std::unique_ptr< mlir::OperationPass< AIE::DeviceOp > > createAIEXInlineTraceConfigPass()
void registerAIEResourceStagesPipeline()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIELowerScratchpadParametersPass()
std::unique_ptr< mlir::OperationPass< AIE::DeviceOp > > createAIELowerMulticastPass()
std::unique_ptr< mlir::OperationPass< AIE::DeviceOp > > createAIEBroadcastPacketPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIEFuseTraceBuffersPass()
void addLoweringStage(mlir::OpPassManager &pm, bool dynamicObjFifos, bool packetSwObjFifos, bool ctrlPktOverlay, bool loadPdiToCtrlPkt, bool skipObjectFifoVerify)
Affine lowering through aie-prepare-buffers.
void addTraceStage(mlir::OpPassManager &pm)
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEInsertTraceFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIETraceRegPackWritesPass()
void addObjectFifoLoweringPasses(mlir::OpPassManager &pm, bool packetSwitched, bool skipVerify)
Adds the passes of aie-objectFifo-stateful-transform to pm, which anchors on DeviceOp.
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEPrepareBuffersPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignTileCtrlIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIELowerCascadeFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIENormalizeDmaBdDimsPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIEGenerateColumnControlOverlayPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignLockIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEPlaceTilesPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoUnrollPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIESplitFlowViasPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECanonicalizeDevicePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferAddressesPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIETraceToConfigPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferDescriptorIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEPathfinderPass()
Options of aie-resource-stages, named and defaulted as aiecc's flags.
Option< int64_t > placementBudget
Option< bool > ctrlPktOverlay
Option< bool > packetSwObjFifos
Option< bool > dynamicObjFifos
Option< AIE::PlacerType > placer
Option< bool > allowDeadlockProneRouting
Option< int > coresPerCol
Option< bool > loadPdiToCtrlPkt
Option< bool > skipObjectFifoVerify
Option< double > saEffort