MLIR 24.0.0git
TosaToLinalgNamed.cpp File Reference
#include "TosaToLinalgUtils.h"
#include "mlir/Conversion/TosaToLinalg/TosaToLinalg.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/Linalg/IR/Linalg.h"
#include "mlir/Dialect/Math/IR/Math.h"
#include "mlir/Dialect/Tensor/IR/Tensor.h"
#include "mlir/Dialect/Tosa/IR/TosaOps.h"
#include "mlir/Dialect/Tosa/Utils/ConversionUtils.h"
#include "mlir/Dialect/Utils/ReshapeOpsUtils.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Transforms/DialectConversion.h"
#include "llvm/ADT/SmallVectorExtras.h"
#include "llvm/ADT/TypeSwitch.h"
#include <optional>
#include <type_traits>

Go to the source code of this file.

Functions

static std::optional< linalg::ElementwiseKind > getElementwiseKind (Operation *op, Type elementTy)
static mlir::Value applyPad (Location loc, Value input, ArrayRef< int64_t > pad, TypedAttr padAttr, OpBuilder &rewriter)
static mlir::Value linalgIntBroadcastExtSIAdd (PatternRewriter &rewriter, Location loc, Value bias, Value conv, Value result, ArrayRef< AffineMap > indexingMaps)
static AffineMap getBroadcastingMap (PatternRewriter &rewriter, Value source, Value result)
static mlir::Value linalgBroadcastAndMaybeExt (PatternRewriter &rewriter, Location loc, Value source, Value result)
static mlir::Value reifyConstantDim (int64_t attr, ImplicitLocOpBuilder &builder)
static mlir::Value getConvOrPoolOutputDim (Location loc, Value inputDim, int64_t padBeforeAttr, int64_t padAfterAttr, Value kernelDim, int64_t strideAttr, int64_t dilationAttr, OpBuilder &rewriter)
static SmallVector< Value > inferDynamicDimsForConv (Location loc, Value input, Value weight, ShapedType resultTy, ArrayRef< int64_t > padAttr, ArrayRef< int64_t > strideAttr, ArrayRef< int64_t > dilationAttr, ArrayRef< int64_t > inputSizeDims, ArrayRef< int64_t > kernelSizeDims, OpBuilder &rewriter)
static void createDepthwiseConvCollapseMap (int64_t outputRank, SmallVector< ReassociationExprs, 4 > &reassociationMap, OpBuilder &rewriter)

Function Documentation

◆ applyPad()

mlir::Value applyPad ( Location loc,
Value input,
ArrayRef< int64_t > pad,
TypedAttr padAttr,
OpBuilder & rewriter )
static

Definition at line 160 of file TosaToLinalgNamed.cpp.

References mlir::Builder::getIndexAttr(), and mlir::Value::getType().

◆ createDepthwiseConvCollapseMap()

void createDepthwiseConvCollapseMap ( int64_t outputRank,
SmallVector< ReassociationExprs, 4 > & reassociationMap,
OpBuilder & rewriter )
static

Definition at line 357 of file TosaToLinalgNamed.cpp.

References mlir::Builder::getAffineDimExpr().

◆ getBroadcastingMap()

◆ getConvOrPoolOutputDim()

mlir::Value getConvOrPoolOutputDim ( Location loc,
Value inputDim,
int64_t padBeforeAttr,
int64_t padAfterAttr,
Value kernelDim,
int64_t strideAttr,
int64_t dilationAttr,
OpBuilder & rewriter )
static

Definition at line 290 of file TosaToLinalgNamed.cpp.

References mlir::Value::getType(), and reifyConstantDim().

Referenced by inferDynamicDimsForConv().

◆ getElementwiseKind()

std::optional< linalg::ElementwiseKind > getElementwiseKind ( Operation * op,
Type elementTy )
static

◆ inferDynamicDimsForConv()

SmallVector< Value > inferDynamicDimsForConv ( Location loc,
Value input,
Value weight,
ShapedType resultTy,
ArrayRef< int64_t > padAttr,
ArrayRef< int64_t > strideAttr,
ArrayRef< int64_t > dilationAttr,
ArrayRef< int64_t > inputSizeDims,
ArrayRef< int64_t > kernelSizeDims,
OpBuilder & rewriter )
static

◆ linalgBroadcastAndMaybeExt()

mlir::Value linalgBroadcastAndMaybeExt ( PatternRewriter & rewriter,
Location loc,
Value source,
Value result )
static

◆ linalgIntBroadcastExtSIAdd()

mlir::Value linalgIntBroadcastExtSIAdd ( PatternRewriter & rewriter,
Location loc,
Value bias,
Value conv,
Value result,
ArrayRef< AffineMap > indexingMaps )
static

◆ reifyConstantDim()

mlir::Value reifyConstantDim ( int64_t attr,
ImplicitLocOpBuilder & builder )
static

Definition at line 281 of file TosaToLinalgNamed.cpp.

References mlir::arith::ConstantIndexOp::create().

Referenced by getConvOrPoolOutputDim().