MLIR
15.0.0git
|
#include "PassDetail.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/Utils.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/MemRef/Transforms/Passes.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Support/Debug.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "normalize-memrefs" |
Functions | |
static bool | isMemRefNormalizable (Value::user_range opUsers) |
Check whether all the uses of oldMemRef are either dereferencing uses or the op is of type : DeallocOp, CallOp or ReturnOp. More... | |
#define DEBUG_TYPE "normalize-memrefs" |
Definition at line 23 of file NormalizeMemRefs.cpp.
|
static |
Check whether all the uses of oldMemRef are either dereferencing uses or the op is of type : DeallocOp, CallOp or ReturnOp.
Only if these constraints are satisfied will the value become a candidate for replacement. TODO: Extend this for DimOps.
Definition at line 97 of file NormalizeMemRefs.cpp.
References mlir::OperationState::addOperands(), mlir::WalkResult::advance(), mlir::Type::cast(), mlir::OpBuilder::create(), mlir::Type::dyn_cast(), mlir::detail::enumerate(), mlir::Operation::erase(), mlir::failed(), mlir::Operation::getAttrs(), mlir::Operation::getLoc(), mlir::Operation::getName(), mlir::Operation::getNumResults(), mlir::Operation::getOperands(), mlir::Operation::getParentOfType(), mlir::Operation::getRegions(), mlir::Operation::getResult(), mlir::Value::getType(), mlir::Value::getUsers(), mlir::Operation::hasTrait(), mlir::WalkResult::interrupt(), mlir::Type::isa(), mlir::normalizeMemRef(), mlir::normalizeMemRefType(), mlir::replaceAllMemRefUsesWith(), mlir::Operation::replaceAllUsesWith(), mlir::Region::takeBody(), and mlir::detail::walk().