MLIR-AIE 1.4.5.dev
DmaDecomposition.h File Reference
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Operation.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
Include dependency graph for DmaDecomposition.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  xilinx::AIEX::NdDmaPattern
 Innermost-first ND access pattern (d0..d3 / repeat), matching the convention used by verifyStridesWraps and NpuDmaMemcpyNdOp verification. More...
struct  xilinx::AIEX::TaskBdDecomposition
 How aie-decompose-large-dma-bd splits a runtime task's descriptor. More...

Namespaces

namespace  xilinx
namespace  xilinx::AIE
namespace  xilinx::AIEX

Functions

bool xilinx::AIEX::patternPassesVerification (mlir::Operation *forOp, mlir::BaseMemRefType referencedBufType, const xilinx::AIE::AIETargetModel &tm, int tileCol, int tileRow, const NdDmaPattern &pattern, bool skipTransformationChecks=false)
 Returns true when the pattern passes verifyStridesWraps for the given tile and memref element type.
bool xilinx::AIEX::isDecomposableNdDmaPattern (mlir::Operation *forOp, mlir::BaseMemRefType referencedBufType, const xilinx::AIE::AIETargetModel &targetModel, int tileCol, int tileRow, llvm::ArrayRef< int64_t > offsetsInnermostFirst, llvm::ArrayRef< int64_t > sizesInnermostFirst, llvm::ArrayRef< int64_t > stridesInnermostFirst)
 True when the pattern is fully constant, non-contiguous, currently illegal, and decomposeNdDmaPattern would produce at least one legal replacement.
mlir::FailureOr< llvm::SmallVector< NdDmaPattern > > xilinx::AIEX::decomposeNdDmaPattern (mlir::Operation *forOp, mlir::BaseMemRefType referencedBufType, const NdDmaPattern &pattern, const xilinx::AIE::AIETargetModel &targetModel, int tileCol, int tileRow)
 Decompose an illegal pattern into one or more legal sub-patterns that move the same data.
mlir::FailureOr< TaskBdDecomposition > xilinx::AIEX::decomposeTaskBdPattern (xilinx::AIE::DMABDOp bd, const xilinx::AIE::AIETargetModel &targetModel, int tileCol, int tileRow)
 Plan the split of bd, a runtime task's descriptor, on tile (tileCol, tileRow).