9 #ifndef MLIR_DIALECT_MEMREF_IR_MEMREF_H_
10 #define MLIR_DIALECT_MEMREF_IR_MEMREF_H_
31 enum class AtomicRMWKind : uint64_t;
32 class AtomicRMWKindAttr;
38 raw_ostream &operator<<(raw_ostream &os, const Range &range);
43 SmallVector<Range, 8> getOrCreateRanges(OffsetSizeAndStrideOpInterface op,
44 OpBuilder &b, Location loc);
51 LogicalResult foldMemRefCast(Operation *op, Value inner = nullptr);
55 Type getTensorTypeFromMemRefType(Type type);
60 std::optional<Operation *> findDealloc(Value allocValue);
63 SmallVector<OpFoldResult> getMixedSizes(OpBuilder &builder, Location loc,
69 Value createCanonicalRankReducingSubViewOp(OpBuilder &b, Location loc,
71 ArrayRef<int64_t> targetShape);
79 #include "mlir/Dialect/MemRef/IR/MemRefOpsDialect.h.inc"
85 #define GET_OP_CLASSES
86 #include "mlir/Dialect/MemRef/IR/MemRefOps.h.inc"
This header declares functions that assit transformations in the MemRef dialect.