MLIR-AIE 1.4.6.dev
xilinx::AIE::ShimTransferSpans Class Reference

Shim endpoint lifetimes, including calls to self-contained runtime sequences. More...

#include "aie/Dialect/AIE/Transforms/AIEShimSharing.h"

Classes

struct  End
 A shim end a runtime sequence transfers through. More...

Public Member Functions

 ShimTransferSpans (DeviceOp device, llvm::function_ref< std::optional< End >(mlir::StringAttr)> endOf)
 endOf maps a symbol a runtime sequence transfers through to the objectFIFO end it belongs to, or nothing when it belongs to none.
 ShimTransferSpans (mlir::ModuleOp module, llvm::function_ref< std::optional< End >(DeviceOp, mlir::StringAttr)> endOf)
bool apart (mlir::StringAttr a, mlir::StringAttr b) const
 Whether both ends permit sharing, explicitly or by MM2S lifetime analysis.
bool isUsed (mlir::StringAttr end) const
llvm::SmallVector< llvm::SmallVector< unsigned > > groups (llvm::ArrayRef< mlir::StringAttr > ends) const
 Splits ends into groups whose members are pairwise apart, each group taking one channel: first fit, ordered by the ends' spans in flight.

Detailed Description

Shim endpoint lifetimes, including calls to self-contained runtime sequences.

MM2S transfers conservatively remain live until their sequence returns.

Definition at line 26 of file AIEShimSharing.h.

Constructor & Destructor Documentation

◆ ShimTransferSpans() [1/2]

xilinx::AIE::ShimTransferSpans::ShimTransferSpans ( DeviceOp device,
llvm::function_ref< std::optional< End >(mlir::StringAttr)> endOf )

endOf maps a symbol a runtime sequence transfers through to the objectFIFO end it belongs to, or nothing when it belongs to none.

◆ ShimTransferSpans() [2/2]

xilinx::AIE::ShimTransferSpans::ShimTransferSpans ( mlir::ModuleOp module,
llvm::function_ref< std::optional< End >(DeviceOp, mlir::StringAttr)> endOf )

Member Function Documentation

◆ apart()

bool ShimTransferSpans::apart ( mlir::StringAttr a,
mlir::StringAttr b ) const

Whether both ends permit sharing, explicitly or by MM2S lifetime analysis.

Definition at line 277 of file AIEShimSharing.cpp.

References isUsed().

Referenced by groups().

◆ groups()

SmallVector< SmallVector< unsigned > > ShimTransferSpans::groups ( llvm::ArrayRef< mlir::StringAttr > ends) const

Splits ends into groups whose members are pairwise apart, each group taking one channel: first fit, ordered by the ends' spans in flight.

Returns indices into ends.

Definition at line 288 of file AIEShimSharing.cpp.

References apart().

◆ isUsed()

bool ShimTransferSpans::isUsed ( mlir::StringAttr end) const

Definition at line 273 of file AIEShimSharing.cpp.

Referenced by apart().


The documentation for this class was generated from the following files: