MLIR 23.0.0git
FoldMemRefAliasOps.cpp File Reference
#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/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/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::Passmlir::memref::impl::createFoldMemRefAliasOpsPass ()
std::unique_ptr<::mlir::Passmlir::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)

Macro Definition Documentation

◆ DBGS

#define DBGS ( )
Value:
(llvm::dbgs() << "[" DEBUG_TYPE "]: ")
#define DEBUG_TYPE

Definition at line 32 of file FoldMemRefAliasOps.cpp.

◆ DEBUG_TYPE

#define DEBUG_TYPE   "fold-memref-alias-ops"

Definition at line 31 of file FoldMemRefAliasOps.cpp.

◆ GEN_PASS_DEF_FOLDMEMREFALIASOPSPASS

#define GEN_PASS_DEF_FOLDMEMREFALIASOPSPASS

Definition at line 36 of file FoldMemRefAliasOps.cpp.

Function Documentation

◆ hasTrailingUnitStrides()

bool hasTrailingUnitStrides ( memref::SubViewOp subview,
int64_t n )
static

Definition at line 61 of file FoldMemRefAliasOps.cpp.

◆ hasTrivialReassociationSuffix()

bool hasTrivialReassociationSuffix ( ArrayRef< ReassociationIndices > reassocs,
int64_t n )
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 50 of file FoldMemRefAliasOps.cpp.

References indices.