|
MLIR 23.0.0git
|
#include "mlir/Dialect/Affine/ViewLikeInterfaceUtils.h"#include "mlir/Dialect/Arith/Utils/Utils.h"#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Dialect/MemRef/IR/MemoryAccessOpInterfaces.h"#include "mlir/Dialect/MemRef/Transforms/Passes.h"#include "mlir/Dialect/MemRef/Transforms/Transforms.h"#include "mlir/Dialect/MemRef/Utils/MemRefUtils.h"#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h"#include "mlir/Dialect/Vector/IR/VectorOps.h"#include "mlir/IR/AffineExpr.h"#include "mlir/IR/AffineMap.h"#include "mlir/IR/PatternMatch.h"#include "mlir/Transforms/GreedyPatternRewriteDriver.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/Support/Debug.h"#include <cstdint>#include "mlir/Dialect/MemRef/Transforms/Passes.h.inc"Go to the source code of this file.
Classes | |
| class | mlir::memref::impl::FoldMemRefAliasOpsPassBase< DerivedT > |
Namespaces | |
| namespace | mlir |
| Include the generated interface declarations. | |
| namespace | mlir::memref |
| namespace | mlir::memref::impl |
Macros | |
| #define | DEBUG_TYPE "fold-memref-alias-ops" |
| #define | DBGS() |
| #define | GEN_PASS_DEF_FOLDMEMREFALIASOPSPASS |
Functions | |
| std::unique_ptr<::mlir::Pass > | mlir::memref::impl::createFoldMemRefAliasOpsPass () |
| std::unique_ptr<::mlir::Pass > | mlir::memref::createFoldMemRefAliasOpsPass () |
| static bool | hasTrivialReassociationSuffix (ArrayRef< ReassociationIndices > reassocs, int64_t n) |
| Deterimine if the last N indices of reassocitaion are trivial - that is, check if they all contain exactly one dimension to collape/expand into. | |
| static bool | hasTrailingUnitStrides (memref::SubViewOp subview, int64_t n) |
| template<typename LoadOrStoreOpTy> | |
| static Value | getMemRefOperand (LoadOrStoreOpTy op) |
| Helpers to access the memref operand for each op. | |
| static Value | getMemRefOperand (vector::TransferReadOp op) |
| static Value | getMemRefOperand (nvgpu::LdMatrixOp op) |
| static Value | getMemRefOperand (vector::LoadOp op) |
| static Value | getMemRefOperand (vector::StoreOp op) |
| static Value | getMemRefOperand (vector::MaskedLoadOp op) |
| static Value | getMemRefOperand (vector::MaskedStoreOp op) |
| static Value | getMemRefOperand (vector::TransferWriteOp op) |
| template<typename XferOp> | |
| static LogicalResult | preconditionsFoldSubViewOpImpl (RewriterBase &rewriter, XferOp xferOp, memref::SubViewOp subviewOp) |
| static LogicalResult | preconditionsFoldSubViewOp (RewriterBase &rewriter, Operation *op, memref::SubViewOp subviewOp) |
| static LogicalResult | preconditionsFoldSubViewOp (RewriterBase &rewriter, vector::TransferReadOp readOp, memref::SubViewOp subviewOp) |
| static LogicalResult | preconditionsFoldSubViewOp (RewriterBase &rewriter, vector::TransferWriteOp writeOp, memref::SubViewOp subviewOp) |
| #define DBGS | ( | ) |
Definition at line 34 of file FoldMemRefAliasOps.cpp.
| #define DEBUG_TYPE "fold-memref-alias-ops" |
Definition at line 33 of file FoldMemRefAliasOps.cpp.
| #define GEN_PASS_DEF_FOLDMEMREFALIASOPSPASS |
Definition at line 38 of file FoldMemRefAliasOps.cpp.
|
static |
Helpers to access the memref operand for each op.
Definition at line 70 of file FoldMemRefAliasOps.cpp.
Referenced by mlir::memref::impl::FoldMemRefAliasOpsPassBase< DerivedT >::getDependentDialects().
|
static |
Definition at line 78 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 82 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 86 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 88 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 84 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 74 of file FoldMemRefAliasOps.cpp.
|
static |
Definition at line 90 of file FoldMemRefAliasOps.cpp.
Definition at line 61 of file FoldMemRefAliasOps.cpp.
|
static |
Deterimine if the last N indices of reassocitaion are trivial - that is, check if they all contain exactly one dimension to collape/expand into.
Definition at line 52 of file FoldMemRefAliasOps.cpp.
References indices.
|
static |
Definition at line 288 of file FoldMemRefAliasOps.cpp.
References success().
Referenced by mlir::memref::impl::FoldMemRefAliasOpsPassBase< DerivedT >::getDependentDialects().
|
static |
Definition at line 294 of file FoldMemRefAliasOps.cpp.
References preconditionsFoldSubViewOpImpl().
|
static |
Definition at line 300 of file FoldMemRefAliasOps.cpp.
References preconditionsFoldSubViewOpImpl().
|
static |
Definition at line 274 of file FoldMemRefAliasOps.cpp.
References mlir::RewriterBase::notifyMatchFailure(), and success().
Referenced by preconditionsFoldSubViewOp(), and preconditionsFoldSubViewOp().