15#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
16#include "mlir/Dialect/SCF/IR/SCF.h"
17#include "mlir/Pass/Pass.h"
35 "aie.objectfifo.object_slot";
52#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
55std::unique_ptr<mlir::OperationPass<DeviceOp>>
58std::unique_ptr<mlir::OperationPass<DeviceOp>>
60std::unique_ptr<mlir::OperationPass<DeviceOp>>
62 const AIEAssignBufferAddressesOptions &options);
63std::unique_ptr<mlir::OperationPass<DeviceOp>>
66std::unique_ptr<mlir::OperationPass<DeviceOp>>
68std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
70std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
72std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
77std::unique_ptr<mlir::OperationPass<DeviceOp>>
80std::unique_ptr<mlir::OperationPass<DeviceOp>>
82std::unique_ptr<mlir::OperationPass<DeviceOp>>
84std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
86std::unique_ptr<mlir::OperationPass<DeviceOp>>
89std::unique_ptr<mlir::OperationPass<DeviceOp>>
92std::unique_ptr<mlir::OperationPass<DeviceOp>>
97std::unique_ptr<mlir::OperationPass<DeviceOp>>
99std::unique_ptr<mlir::OperationPass<DeviceOp>>
101std::unique_ptr<mlir::OperationPass<DeviceOp>>
103std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
105std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
107std::unique_ptr<mlir::OperationPass<DeviceOp>>
109std::unique_ptr<mlir::OperationPass<DeviceOp>>
112std::unique_ptr<mlir::OperationPass<DeviceOp>>
114std::unique_ptr<mlir::OperationPass<DeviceOp>>
116std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
118std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
120 const AIEGenerateColumnControlOverlayOptions &options);
123std::unique_ptr<mlir::OperationPass<DeviceOp>>
128#define GEN_PASS_REGISTRATION
129#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEInsertTraceFlowsPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIEHoistVectorTransferPointersPass()
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 > > createAIECoreIntRangeNarrowingPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoLowerCoresPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignTileCtrlIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIELowerCascadeFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoAllocatePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIENormalizeDmaBdDimsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEFindFlowsPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECoreToStandardPass()
constexpr llvm::StringLiteral kObjectFifoObjectSlotAttrName
Discardable attribute set by --aie-objectfifo-lower-cores on the rank-0 memref.allocas that hold a co...
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECheckAgainstImagePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoLivenessPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEVectorToPointerLoopsPass()
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 > > createAIENormalizeAddressSpacesPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIERouteFlowsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignPacketIdsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIESplitFlowViasPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignCoreLinkFilesPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoErasePoolsPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createAIECanonicalizeDevicePass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferAddressesPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoVerifyPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIELocalizeLocksPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIETraceToConfigPass()
constexpr llvm::StringLiteral kObjectFifoUnrollHintAttrName
Discardable attribute set by --aie-objectfifo-lower-cores on scf.for and forever scf....
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEAssignBufferDescriptorIDsPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoLowerDMAsPass()
bool isForeverLoop(mlir::scf::WhileOp whileOp)
Whether whileOp repeats forever: its condition is a constant true, and its condition region does noth...
void registerAIEObjectFifoPipeline()
Register aie-objectFifo-stateful-transform as a pipeline over the passes that lower aie....
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEPathfinderPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEVectorTransferLoweringPass()
std::unique_ptr< mlir::OperationPass< DeviceOp > > createAIEObjectFifoSplitPass()
mlir::Operation * getObjectFifoLoopParent(mlir::Operation *op)
The innermost loop around op that isObjectFifoLoop accepts, or null.
bool isObjectFifoLoop(mlir::Operation *op)
Whether op is a loop that objectFifo lowering unrolls by the rotation period of the objectFifos acces...