|
MLIR 24.0.0git
|
#include "mlir/Dialect/Vector/Transforms/MemorySlotOpInterfaceImpl.h"#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Dialect/Utils/StaticValueUtils.h"#include "mlir/Dialect/Vector/IR/VectorOps.h"#include "mlir/IR/BuiltinTypes.h"#include "mlir/Interfaces/MemorySlotInterfaces.h"Go to the source code of this file.
Functions | |
| static bool | isWholeBufferTransfer (VectorTransferOpInterface xferOp, const MemorySlot &slot, const SmallPtrSetImpl< OpOperand * > &blockingUses) |
| Returns whether xferOp accesses exactly the whole contents of slot, so it can act as a plain whole-buffer load/store during Mem2Reg. | |
| static std::optional< SmallVector< int64_t > > | getPromotableSubViewOffsets (memref::SubViewOp subView) |
| Returns the offsets of subView as a static, contiguous, same-rank slice of its source, or nullopt if the subview is not promotable as a whole-buffer sub-slice. | |
|
static |
Returns the offsets of subView as a static, contiguous, same-rank slice of its source, or nullopt if the subview is not promotable as a whole-buffer sub-slice.
Promotion projects the parent buffer's vector value through vector.extract_strided_slice / insert_strided_slice, which require:
Definition at line 181 of file MemorySlotOpInterfaceImpl.cpp.
References mlir::getConstantIntValue().
|
static |
Returns whether xferOp accesses exactly the whole contents of slot, so it can act as a plain whole-buffer load/store during Mem2Reg.
Definition at line 51 of file MemorySlotOpInterfaceImpl.cpp.
References mlir::MemorySlot::elemType, mlir::getConstantIntValue(), and mlir::MemorySlot::ptr.