MLIR 23.0.0git
ReshapePatterns.cpp File Reference
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/Dialect/Tensor/Transforms/Transforms.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/ValueBoundsOpInterface.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/LogicalResult.h"

Go to the source code of this file.

Functions

static bool isMultipleOf (OpFoldResult ofr, int64_t factor)
static LogicalResult computeExpandedSliceInfoForReassocGroup (OpBuilder &b, OpFoldResult collapsedSize, OpFoldResult collapsedOffset, const ReassociationIndices &reassocIndices, ArrayRef< int64_t > expandedShape, SmallVectorImpl< OpFoldResult > &groupSizes)
 Given a collapsedOffset and collapsedSize, this function validates that the slice is representable as a contiguous slice in the expandedShape and computes the corresponding expanded sizes.

Function Documentation

◆ computeExpandedSliceInfoForReassocGroup()

LogicalResult computeExpandedSliceInfoForReassocGroup ( OpBuilder & b,
OpFoldResult collapsedSize,
OpFoldResult collapsedOffset,
const ReassociationIndices & reassocIndices,
ArrayRef< int64_t > expandedShape,
SmallVectorImpl< OpFoldResult > & groupSizes )
static

Given a collapsedOffset and collapsedSize, this function validates that the slice is representable as a contiguous slice in the expandedShape and computes the corresponding expanded sizes.

Returns failure if the slice cannot be guaranteed to be contiguous. On success, populates groupSizes with the expanded sizes for each dimension in the reassociation group.

Definition at line 612 of file ReshapePatterns.cpp.

References b, mlir::getConstantIntValue(), isMultipleOf(), and success().

Referenced by mlir::tensor::getExpandedExtractSliceInfo().

◆ isMultipleOf()