10#include "mlir/Pass/PassManager.h"
11#include "mlir/Pass/PassRegistry.h"
18struct ObjectFifoLoweringOptions
19 :
public PassPipelineOptions<ObjectFifoLoweringOptions> {
20 Option<bool> packetSwitched{
21 *
this,
"packet-sw-objFifos",
23 "Flag to enable aie.packetflow lowering from objectfifos."),
24 llvm::cl::init(
false)};
25 Option<bool> skipVerify{
27 llvm::cl::desc(
"Skip structural verification of split objectFifo IR."),
28 llvm::cl::init(
false)};
47 PassPipelineRegistration<ObjectFifoLoweringOptions>(
48 "aie-objectFifo-stateful-transform",
49 "Lower aie.objectfifo to buffers, locks, flows and DMA programs",
50 [](OpPassManager &pm,
const ObjectFifoLoweringOptions &options) {
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 > > createAIEObjectFifoLowerCoresPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoAllocatePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignPacketIdsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoErasePoolsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoVerifyPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoLowerDMAsPass()
void registerAIEObjectFifoPipeline()
Register aie-objectFifo-stateful-transform as a pipeline over the passes that lower aie....
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoSplitPass()