MLIR 22.0.0git
mlir::tosa Namespace Reference

Namespaces

namespace  detail
 Implemented by ops that correspond to the Tosa specification.
namespace  impl

Classes

class  TargetEnv
 This class represents the capability enabled in the target implementation such as profile, extension, and level. More...
struct  TosaAttachTargetOptions
struct  TosaLayerwiseConstantFoldPassOptions
struct  TosaLevel
struct  TosaNarrowI64ToI32PassOptions
class  TosaOp
class  TosaSpecificationVersion
 A thin wrapper around the SpecificationVersion enum to represent and provide utilities around the TOSA specification version. More...
struct  TosaValidationOptions
struct  ValueKnowledge
 Statically known information for a particular Value. More...

Functions

void populateTosaToArithConversionPatterns (RewritePatternSet *patterns)
void populateTosaRescaleToArithConversionPatterns (RewritePatternSet *patterns, bool include32Bit=false)
std::unique_ptr< PasscreateTosaToLinalg ()
std::unique_ptr< PasscreateTosaToLinalgNamed (const TosaToLinalgNamedOptions &options=TosaToLinalgNamedOptions())
void addTosaToLinalgPasses (OpPassManager &pm, const TosaToLinalgOptions &options, const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions=TosaToLinalgNamedOptions(), std::optional< tosa::TosaValidationOptions > validationOptions=tosa::TosaValidationOptions{false, false})
 Populates passes to convert from TOSA to Linalg on buffers.
void registerTosaToLinalgPipelines ()
 Populates TOSA to linalg pipelines Currently, this includes only the "tosa-to-linalg-pipeline".
void populateTosaToLinalgConversionPatterns (const TypeConverter &converter, RewritePatternSet *patterns)
 Populates conversion passes from TOSA dialect to Linalg dialect.
void populateTosaToLinalgNamedConversionPatterns (const TypeConverter &converter, RewritePatternSet *patterns, const TosaToLinalgNamedOptions &options)
 Populates conversion passes from TOSA dialect to Linalg named operations.
void populateTosaToMLProgramConversionPatterns (RewritePatternSet *patterns)
void populateTosaToSCFConversionPatterns (RewritePatternSet *patterns)
void addTosaToSCFPasses (OpPassManager &pm)
 Populates passes to convert from TOSA to SCF.
void populateTosaToTensorConversionPatterns (const TypeConverter &converter, RewritePatternSet *patterns)
void registerShardingInterfaceExternalModels (DialectRegistry &registry)
TargetEnvAttr lookupTargetEnv (Operation *op)
TargetEnvAttr getDefaultTargetEnv (MLIRContext *context)
TargetEnvAttr lookupTargetEnvOrDefault (Operation *op)
 Queries the target environment recursively from enclosing symbol table ops containing the given op or returns the default target environment as returned by getDefaultTargetEnv() if not provided.
TosaSpecificationVersion getMinVersion (const Profile &profile)
TosaSpecificationVersion getMinVersion (const Extension &extension)
TosaSpecificationVersion getMinVersion (const Level &level)
llvm::SmallString< 4 > stringifyVersion (TosaSpecificationVersion version)
ParseResult parseVariableOpTypeOrInitialValue (OpAsmParser &parser, DenseElementsAttr &varShapeAttr, TypeAttr &typeAttr, Attribute &initialValueAttr)
void printVariableOpTypeOrInitialValue (OpAsmPrinter &p, Operation *op, DenseElementsAttr varShapeAttr, TypeAttr typeAttr, Attribute initialValueAttr)
bool isa_tosa_shape_type (mlir::Type t)
std::optional< ValuecreateZeroPointTensor (OpBuilder &builder, Location loc, Type srcElemType, int64_t zp=0)
Value createPadConstTensor (OpBuilder &builder, Location loc, Value src, int32_t val=0)
RankedTensorType getVariableType (VariableOp variableOp)
unsigned getBitWidth (Type type)
std::unique_ptr<::mlir::PasscreateTosaAttachTarget ()
std::unique_ptr<::mlir::PasscreateTosaAttachTarget (TosaAttachTargetOptions options)
std::unique_ptr<::mlir::PasscreateTosaConvertIntegerTypeToSignless ()
std::unique_ptr<::mlir::PasscreateTosaInferShapesPass ()
std::unique_ptr<::mlir::PasscreateTosaLayerwiseConstantFoldPass ()
std::unique_ptr<::mlir::PasscreateTosaLayerwiseConstantFoldPass (TosaLayerwiseConstantFoldPassOptions options)
std::unique_ptr<::mlir::PasscreateTosaMakeBroadcastablePass ()
std::unique_ptr<::mlir::PasscreateTosaNarrowI64ToI32Pass ()
std::unique_ptr<::mlir::PasscreateTosaNarrowI64ToI32Pass (TosaNarrowI64ToI32PassOptions options)
std::unique_ptr<::mlir::PasscreateTosaOptionalDecompositionsPass ()
std::unique_ptr<::mlir::PasscreateTosaReduceTransposes ()
std::unique_ptr<::mlir::PasscreateTosaValidation ()
std::unique_ptr<::mlir::PasscreateTosaValidation (TosaValidationOptions options)
void populateTosaDecomposeTransposeConv (MLIRContext *ctx, RewritePatternSet &patterns)
void populateTosaDecomposeDepthwise (MLIRContext *ctx, RewritePatternSet &patterns)
void populateTosaFoldConstantReciprocalPatterns (MLIRContext *ctx, RewritePatternSet &patterns)
void populateTosaFoldConstantTransposePatterns (MLIRContext *ctx, RewritePatternSet &patterns)
void populateTosaConstantReduction (MLIRContext *ctx, RewritePatternSet &patterns, bool aggressiveReduceConstant)
void populateTosaTypeConversion (TypeConverter &converter)
std::unique_ptr< PasscreateTosaTestQuantUtilAPIPass ()
void registerTosaAttachTarget ()
void registerTosaAttachTargetPass ()
void registerTosaConvertIntegerTypeToSignless ()
void registerTosaConvertIntegerTypeToSignlessPass ()
void registerTosaInferShapesPass ()
void registerTosaInferShapesPassPass ()
void registerTosaLayerwiseConstantFoldPass ()
void registerTosaLayerwiseConstantFoldPassPass ()
void registerTosaMakeBroadcastablePass ()
void registerTosaMakeBroadcastablePassPass ()
void registerTosaNarrowI64ToI32Pass ()
void registerTosaNarrowI64ToI32PassPass ()
void registerTosaOptionalDecompositionsPass ()
void registerTosaOptionalDecompositionsPassPass ()
void registerTosaReduceTransposes ()
void registerTosaReduceTransposesPass ()
void registerTosaValidation ()
void registerTosaValidationPass ()
void registerTosaOptPasses ()
SmallVector< utils::IteratorType > getNParallelLoopsAttrs (unsigned nParallelLoops)
SmallVector< ValuecondenseValues (const SmallVector< Value > &values)
Value clampFloatHelper (Location loc, Value arg, Value min, Value max, OpBuilder &rewriter)
Value clampIntHelper (Location loc, Value arg, Value min, Value max, OpBuilder &rewriter, bool isUnsigned)
bool validIntegerRange (IntegerType ty, int64_t value)
template<typename Op>
std::optional< SmallVector< Value > > checkHasDynamicBatchDims (PatternRewriter &rewriter, Op op, ArrayRef< Value > params)
LogicalResult EqualizeRanks (PatternRewriter &rewriter, Location loc, Value &input1, Value &input2)
 Common code to create the reshape op where necessary to make the rank of two values equal.
LogicalResult EqualizeRanks (ImplicitLocOpBuilder &builder, Value &input1, Value &input2)
template<typename TosaOp, typename... Args>
TosaOp CreateOpAndInferShape (ImplicitLocOpBuilder &builder, Type resultTy, Args &&...args)
template<typename TosaOp, typename... Args>
TosaOp CreateOpAndInferShape (PatternRewriter &rewriter, Location loc, Type resultTy, Args &&...args)
template<typename T>
SmallVector< T > applyTOSAPermutation (ArrayRef< T > input, ArrayRef< int32_t > perms)
Value getTosaConstShape (ImplicitLocOpBuilder &builder, llvm::ArrayRef< int64_t > shape)
Value getTosaConstShape (PatternRewriter &rewriter, Location loc, llvm::ArrayRef< int64_t > shape)
SmallVector< int64_tconvertFromMlirShape (ArrayRef< int64_t > shape)
bool getConstShapeValues (Operation *op, llvm::SmallVector< int64_t > &result_shape)
SmallVector< int64_tconvertFromIntAttr (const DenseElementsAttr &attr, const int rank)
bool hasUniqueConstantScatterIndices (ShapedType indicesType, DenseIntElementsAttr indicesAttr)
bool computeMultiplierAndShift (double scale, int32_t &multiplier, int32_t &shift, int32_t scaleWidth)
 From a scale value, computes multiplier and shift values for 16 or 32-bit scale widths.
template<typename IntType>
Value getConstTensorInt (OpBuilder &builder, Location loc, ArrayRef< IntType > vec)
ConvOpQuantizationAttr buildConvOpQuantizationAttr (OpBuilder &builder, Value input, Value weight)
 Method to build ConvOpQuantizationAttr, called from ConvOpQuantInfoBuilder/TransConvOpQuantInfoBuilder: input_zp: input zeropoint weight_zp: weight zeropoint.
std::pair< Value, ValuecreateZPsAsConst (OpBuilder &builder, Value input, Value weight)
MatMulOpQuantizationAttr buildMatMulOpQuantizationAttr (OpBuilder &builder, Value a, Value b)
 Builds MatMulOpQuantizationAttr, called from MatMulOpQuantInfoBuilder: aZp: input a zeropoint bZp: input b zeropoint.
UnaryOpQuantizationAttr buildUnaryOpQuantizationAttr (OpBuilder &builder, Value input, Type outputRawType)
 Builds UnaryOpQuantizationAttr UnaryOpQuantInfoBuilder: inputZp: input zeropoint outputZp: output zeropoint.
PadOpQuantizationAttr buildPadOpQuantizationAttr (OpBuilder &builder, Value input)
 Builds PadOpQuantizationAttr, called from PadOpQuantInfoBuilder: inputZp: input zeropoint.
Type buildConvOpResultTypeInfo (OpBuilder &builder, Type outputType, Value input, Value weight)
 construct ConvOp output type with correct bitwidth based on input/weight width.
Type buildQTypeFromMinMax (OpBuilder builder, Type inputDType, Attribute minAttr, Attribute maxAttr, IntegerAttr quantBits, int filterQuantDim, bool isSigned, BoolAttr narrowRange)
 Builds Tosa quantization attributes from min/max values.
TypeAttr buildQTypeAttrFromMinMax (OpBuilder builder, Type inputDType, Attribute minAttr, Attribute maxAttr, IntegerAttr quantBits, int filterQuantDim, bool isSigned, BoolAttr narrowRange)
 Builds Tosa quantization attributes from min/max values.

Variables

static constexpr TosaLevel TOSA_LEVEL_EIGHTK = {6, 8192, 8192, 256, 31, 6, 64}
static constexpr TosaLevel TOSA_LEVEL_NONE

Function Documentation

◆ addTosaToLinalgPasses()

void mlir::tosa::addTosaToLinalgPasses ( OpPassManager & pm,
const TosaToLinalgOptions & options,
const TosaToLinalgNamedOptions & tosaToLinalgNamedOptions = TosaToLinalgNamedOptions(),
std::optional< tosa::TosaValidationOptions > validationOptions = tosa::TosaValidationOptions{falsefalse} )

Populates passes to convert from TOSA to Linalg on buffers.

At the end of the pass, the function will only contain linalg ops or standard ops if the pipeline succeeds. The option to disable decompositions is available for benchmarking performance improvements from the canonicalizations.

Definition at line 80 of file TosaToLinalgPass.cpp.

References mlir::OpPassManager::addNestedPass(), mlir::OpPassManager::addPass(), mlir::createCanonicalizerPass(), createTosaInferShapesPass(), createTosaLayerwiseConstantFoldPass(), createTosaMakeBroadcastablePass(), createTosaOptionalDecompositionsPass(), createTosaToLinalg(), createTosaToLinalgNamed(), createTosaValidation(), and options.

Referenced by registerTosaToLinalgPipelines().

◆ addTosaToSCFPasses()

void mlir::tosa::addTosaToSCFPasses ( OpPassManager & pm)

Populates passes to convert from TOSA to SCF.

Definition at line 49 of file TosaToSCFPass.cpp.

References mlir::OpPassManager::addNestedPass(), and mlir::createTosaToSCFPass().

◆ applyTOSAPermutation()

template<typename T>
SmallVector< T > mlir::tosa::applyTOSAPermutation ( ArrayRef< T > input,
ArrayRef< int32_t > perms )

Definition at line 222 of file ConversionUtils.h.

◆ buildConvOpQuantizationAttr()

ConvOpQuantizationAttr mlir::tosa::buildConvOpQuantizationAttr ( OpBuilder & builder,
Value input,
Value weight )

Method to build ConvOpQuantizationAttr, called from ConvOpQuantInfoBuilder/TransConvOpQuantInfoBuilder: input_zp: input zeropoint weight_zp: weight zeropoint.

Definition at line 198 of file QuantUtils.cpp.

References mlir::Builder::getAttr(), and getConvZeroPoints().

Referenced by buildConvOpWithQuantInfo(), and buildTransConvOpWithQuantInfo().

◆ buildConvOpResultTypeInfo()

Type mlir::tosa::buildConvOpResultTypeInfo ( OpBuilder & builder,
Type outputType,
Value input,
Value weight )

construct ConvOp output type with correct bitwidth based on input/weight width.

Builds output type for a quantized ConvOp with the right bitwidth.

This is called by the builder when dealing with quantized content.

Definition at line 289 of file QuantUtils.cpp.

References GET_QTYPE, mlir::Builder::getI32Type(), mlir::Builder::getIntegerType(), and mlir::Value::getType().

Referenced by buildConvOpWithQuantInfo(), and buildTransConvOpWithQuantInfo().

◆ buildMatMulOpQuantizationAttr()

MatMulOpQuantizationAttr mlir::tosa::buildMatMulOpQuantizationAttr ( OpBuilder & builder,
Value a,
Value b )

Builds MatMulOpQuantizationAttr, called from MatMulOpQuantInfoBuilder: aZp: input a zeropoint bZp: input b zeropoint.

Definition at line 214 of file QuantUtils.cpp.

References b, GET_UQTYPE, mlir::Builder::getAttr(), and mlir::Value::getType().

Referenced by buildMatMulOpWithQuantInfo().

◆ buildPadOpQuantizationAttr()

PadOpQuantizationAttr mlir::tosa::buildPadOpQuantizationAttr ( OpBuilder & builder,
Value input )

Builds PadOpQuantizationAttr, called from PadOpQuantInfoBuilder: inputZp: input zeropoint.

Definition at line 269 of file QuantUtils.cpp.

References GET_UQTYPE, mlir::Builder::getAttr(), and mlir::Value::getType().

Referenced by buildPadOpWithQuantInfo().

◆ buildQTypeAttrFromMinMax()

TypeAttr mlir::tosa::buildQTypeAttrFromMinMax ( OpBuilder builder,
Type inputDType,
Attribute minAttr,
Attribute maxAttr,
IntegerAttr quantBits,
int filterQuantDim,
bool isSigned,
BoolAttr narrowRange )

Builds Tosa quantization attributes from min/max values.

Definition at line 389 of file QuantUtils.cpp.

References buildQTypeFromMinMax().

◆ buildQTypeFromMinMax()

Type mlir::tosa::buildQTypeFromMinMax ( OpBuilder builder,
Type inputDType,
Attribute minAttr,
Attribute maxAttr,
IntegerAttr quantBits,
int filterQuantDim,
bool isSigned,
BoolAttr narrowRange )

◆ buildUnaryOpQuantizationAttr()

UnaryOpQuantizationAttr mlir::tosa::buildUnaryOpQuantizationAttr ( OpBuilder & builder,
Value input,
Type outputRawType )

Builds UnaryOpQuantizationAttr UnaryOpQuantInfoBuilder: inputZp: input zeropoint outputZp: output zeropoint.

Definition at line 243 of file QuantUtils.cpp.

References GET_UQTYPE, mlir::Builder::getAttr(), and mlir::Value::getType().

Referenced by buildAvgPool2dOpWithQuantInfo(), and buildNegateOpWithQuantInfo().

◆ checkHasDynamicBatchDims()

template<typename Op>
std::optional< SmallVector< Value > > mlir::tosa::checkHasDynamicBatchDims ( PatternRewriter & rewriter,
Op op,
ArrayRef< Value > params )

◆ clampFloatHelper()

Value mlir::tosa::clampFloatHelper ( Location loc,
Value arg,
Value min,
Value max,
OpBuilder & rewriter )

Definition at line 34 of file ConversionUtils.cpp.

References max(), and min().

Referenced by createLinalgBodyCalculationForElementwiseOp().

◆ clampIntHelper()

Value mlir::tosa::clampIntHelper ( Location loc,
Value arg,
Value min,
Value max,
OpBuilder & rewriter,
bool isUnsigned )

Definition at line 40 of file ConversionUtils.cpp.

References max(), and min().

Referenced by createLinalgBodyCalculationForElementwiseOp().

◆ computeMultiplierAndShift()

bool mlir::tosa::computeMultiplierAndShift ( double scale,
int32_t & multiplier,
int32_t & shift,
int32_t scaleWidth )

From a scale value, computes multiplier and shift values for 16 or 32-bit scale widths.

Generates a quantized multiplier/shift from double.

Definition at line 95 of file QuantUtils.cpp.

References computeMultiplierAndShiftTosaScale16(), and computeMultiplierAndShiftTosaScale32().

◆ condenseValues()

SmallVector< Value > mlir::tosa::condenseValues ( const SmallVector< Value > & values)

Definition at line 26 of file ConversionUtils.cpp.

Referenced by inferDynamicDimsForConv().

◆ convertFromIntAttr()

SmallVector< int64_t > mlir::tosa::convertFromIntAttr ( const DenseElementsAttr & attr,
const int rank )

◆ convertFromMlirShape()

SmallVector< int64_t > mlir::tosa::convertFromMlirShape ( ArrayRef< int64_t > shape)

Definition at line 182 of file ConversionUtils.cpp.

Referenced by buildVariableOp(), and getTosaConstShape().

◆ CreateOpAndInferShape() [1/2]

template<typename TosaOp, typename... Args>
TosaOp mlir::tosa::CreateOpAndInferShape ( ImplicitLocOpBuilder & builder,
Type resultTy,
Args &&... args )

Definition at line 146 of file ConversionUtils.h.

References EqualizeRanks().

Referenced by CreateOpAndInferShape().

◆ CreateOpAndInferShape() [2/2]

template<typename TosaOp, typename... Args>
TosaOp mlir::tosa::CreateOpAndInferShape ( PatternRewriter & rewriter,
Location loc,
Type resultTy,
Args &&... args )

Definition at line 213 of file ConversionUtils.h.

References CreateOpAndInferShape().

◆ createPadConstTensor()

Value mlir::tosa::createPadConstTensor ( OpBuilder & builder,
Location loc,
Value src,
int32_t val = 0 )

◆ createTosaAttachTarget() [1/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaAttachTarget ( )

Definition at line 123 of file TosaAttachTarget.cpp.

◆ createTosaAttachTarget() [2/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaAttachTarget ( TosaAttachTargetOptions options)

Definition at line 127 of file TosaAttachTarget.cpp.

◆ createTosaConvertIntegerTypeToSignless()

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaConvertIntegerTypeToSignless ( )

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 202 of file TosaConvertIntegerTypeToSignless.cpp.

◆ createTosaInferShapesPass()

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaInferShapesPass ( )

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 279 of file TosaInferShapes.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaLayerwiseConstantFoldPass() [1/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaLayerwiseConstantFoldPass ( )

Definition at line 370 of file TosaLayerwiseConstantFoldPass.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaLayerwiseConstantFoldPass() [2/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaLayerwiseConstantFoldPass ( TosaLayerwiseConstantFoldPassOptions options)

Definition at line 374 of file TosaLayerwiseConstantFoldPass.cpp.

◆ createTosaMakeBroadcastablePass()

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaMakeBroadcastablePass ( )

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 449 of file TosaMakeBroadcastable.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaNarrowI64ToI32Pass() [1/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaNarrowI64ToI32Pass ( )

Definition at line 544 of file TosaNarrowI64ToI32.cpp.

◆ createTosaNarrowI64ToI32Pass() [2/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaNarrowI64ToI32Pass ( TosaNarrowI64ToI32PassOptions options)

Definition at line 548 of file TosaNarrowI64ToI32.cpp.

◆ createTosaOptionalDecompositionsPass()

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaOptionalDecompositionsPass ( )

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 623 of file TosaOptionalDecompositions.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaReduceTransposes()

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaReduceTransposes ( )

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 698 of file TosaReduceTransposes.cpp.

◆ createTosaTestQuantUtilAPIPass()

std::unique_ptr< Pass > mlir::tosa::createTosaTestQuantUtilAPIPass ( )

◆ createTosaToLinalg()

std::unique_ptr< Pass > mlir::tosa::createTosaToLinalg ( )

Definition at line 76 of file TosaToLinalgPass.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaToLinalgNamed()

std::unique_ptr< Pass > mlir::tosa::createTosaToLinalgNamed ( const TosaToLinalgNamedOptions & options = TosaToLinalgNamedOptions())

Definition at line 79 of file TosaToLinalgNamedPass.cpp.

References options.

Referenced by addTosaToLinalgPasses().

◆ createTosaValidation() [1/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaValidation ( )

Definition at line 792 of file TosaValidation.cpp.

Referenced by addTosaToLinalgPasses().

◆ createTosaValidation() [2/2]

std::unique_ptr<::mlir::Pass > mlir::tosa::createTosaValidation ( TosaValidationOptions options)

Definition at line 796 of file TosaValidation.cpp.

References mlir::Operation::emitOpError().

◆ createZeroPointTensor()

std::optional< Value > mlir::tosa::createZeroPointTensor ( OpBuilder & builder,
Location loc,
Type srcElemType,
int64_t zp = 0 )

◆ createZPsAsConst()

◆ EqualizeRanks() [1/2]

LogicalResult mlir::tosa::EqualizeRanks ( ImplicitLocOpBuilder & builder,
Value & input1,
Value & input2 )

Definition at line 113 of file ConversionUtils.cpp.

References getTosaConstShape(), mlir::Value::getType(), and success().

◆ EqualizeRanks() [2/2]

LogicalResult mlir::tosa::EqualizeRanks ( PatternRewriter & rewriter,
Location loc,
Value & input1,
Value & input2 )

Common code to create the reshape op where necessary to make the rank of two values equal.

input1 and input2 will be updated when the rank has changed. The caller is expected to use these to rewrite the original operator with the RESHAPE now in the graph.

Definition at line 107 of file ConversionUtils.cpp.

References EqualizeRanks().

Referenced by CreateOpAndInferShape(), and EqualizeRanks().

◆ getBitWidth()

unsigned mlir::tosa::getBitWidth ( Type type)

Definition at line 609 of file TosaOps.cpp.

References mlir::Type::getIntOrFloatBitWidth().

◆ getConstShapeValues()

bool mlir::tosa::getConstShapeValues ( Operation * op,
llvm::SmallVector< int64_t > & result_shape )

◆ getConstTensorInt()

template<typename IntType>
Value mlir::tosa::getConstTensorInt ( OpBuilder & builder,
Location loc,
ArrayRef< IntType > vec )

Definition at line 36 of file QuantUtils.h.

References mlir::DenseElementsAttr::get(), and mlir::Builder::getIntegerType().

◆ getDefaultTargetEnv()

TargetEnvAttr mlir::tosa::getDefaultTargetEnv ( MLIRContext * context)

Definition at line 121 of file TargetEnv.cpp.

Referenced by lookupTargetEnvOrDefault().

◆ getMinVersion() [1/3]

TosaSpecificationVersion mlir::tosa::getMinVersion ( const Extension & extension)

Definition at line 30 of file TargetEnv.cpp.

◆ getMinVersion() [2/3]

TosaSpecificationVersion mlir::tosa::getMinVersion ( const Level & level)

Definition at line 53 of file TargetEnv.cpp.

◆ getMinVersion() [3/3]

TosaSpecificationVersion mlir::tosa::getMinVersion ( const Profile & profile)

Definition at line 19 of file TargetEnv.cpp.

Referenced by mlir::tosa::TargetEnv::verifyTargetInformation().

◆ getNParallelLoopsAttrs()

SmallVector< utils::IteratorType > mlir::tosa::getNParallelLoopsAttrs ( unsigned nParallelLoops)

◆ getTosaConstShape() [1/2]

◆ getTosaConstShape() [2/2]

Value mlir::tosa::getTosaConstShape ( PatternRewriter & rewriter,
Location loc,
llvm::ArrayRef< int64_t > shape )

Definition at line 176 of file ConversionUtils.cpp.

References getTosaConstShape().

◆ getVariableType()

RankedTensorType mlir::tosa::getVariableType ( VariableOp variableOp)

Referenced by verifyVariableOpErrorIf().

◆ hasUniqueConstantScatterIndices()

bool mlir::tosa::hasUniqueConstantScatterIndices ( ShapedType indicesType,
DenseIntElementsAttr indicesAttr )

Definition at line 224 of file ConversionUtils.cpp.

References b, and indices.

◆ isa_tosa_shape_type()

bool mlir::tosa::isa_tosa_shape_type ( mlir::Type t)

Definition at line 4582 of file TosaOps.cpp.

◆ lookupTargetEnv()

TargetEnvAttr mlir::tosa::lookupTargetEnv ( Operation * op)

◆ lookupTargetEnvOrDefault()

TargetEnvAttr mlir::tosa::lookupTargetEnvOrDefault ( Operation * op)

Queries the target environment recursively from enclosing symbol table ops containing the given op or returns the default target environment as returned by getDefaultTargetEnv() if not provided.

Definition at line 126 of file TargetEnv.cpp.

References mlir::Operation::getContext(), getDefaultTargetEnv(), and lookupTargetEnv().

◆ parseVariableOpTypeOrInitialValue()

ParseResult mlir::tosa::parseVariableOpTypeOrInitialValue ( OpAsmParser & parser,
DenseElementsAttr & varShapeAttr,
TypeAttr & typeAttr,
Attribute & initialValueAttr )

◆ populateTosaConstantReduction()

void mlir::tosa::populateTosaConstantReduction ( MLIRContext * ctx,
RewritePatternSet & patterns,
bool aggressiveReduceConstant )

Definition at line 449 of file TosaFolders.cpp.

References mlir::patterns.

◆ populateTosaDecomposeDepthwise()

void mlir::tosa::populateTosaDecomposeDepthwise ( MLIRContext * ctx,
RewritePatternSet & patterns )

Definition at line 198 of file TosaDecomposeDepthwise.cpp.

References mlir::patterns.

◆ populateTosaDecomposeTransposeConv()

void mlir::tosa::populateTosaDecomposeTransposeConv ( MLIRContext * ctx,
RewritePatternSet & patterns )

Definition at line 345 of file TosaDecomposeTransposeConv.cpp.

References mlir::patterns.

◆ populateTosaFoldConstantReciprocalPatterns()

void mlir::tosa::populateTosaFoldConstantReciprocalPatterns ( MLIRContext * ctx,
RewritePatternSet & patterns )

Definition at line 471 of file TosaFolders.cpp.

References mlir::patterns.

◆ populateTosaFoldConstantTransposePatterns()

void mlir::tosa::populateTosaFoldConstantTransposePatterns ( MLIRContext * ctx,
RewritePatternSet & patterns )

Definition at line 466 of file TosaFolders.cpp.

References mlir::patterns.

◆ populateTosaRescaleToArithConversionPatterns()

void mlir::tosa::populateTosaRescaleToArithConversionPatterns ( RewritePatternSet * patterns,
bool include32Bit = false )

Definition at line 258 of file TosaToArith.cpp.

References mlir::patterns.

◆ populateTosaToArithConversionPatterns()

void mlir::tosa::populateTosaToArithConversionPatterns ( RewritePatternSet * patterns)

Definition at line 253 of file TosaToArith.cpp.

References mlir::patterns.

◆ populateTosaToLinalgConversionPatterns()

void mlir::tosa::populateTosaToLinalgConversionPatterns ( const TypeConverter & converter,
RewritePatternSet * patterns )

Populates conversion passes from TOSA dialect to Linalg dialect.

Definition at line 3033 of file TosaToLinalg.cpp.

References mlir::patterns.

◆ populateTosaToLinalgNamedConversionPatterns()

void mlir::tosa::populateTosaToLinalgNamedConversionPatterns ( const TypeConverter & converter,
RewritePatternSet * patterns,
const TosaToLinalgNamedOptions & options )

Populates conversion passes from TOSA dialect to Linalg named operations.

Definition at line 1117 of file TosaToLinalgNamed.cpp.

References options, and mlir::patterns.

◆ populateTosaToMLProgramConversionPatterns()

void mlir::tosa::populateTosaToMLProgramConversionPatterns ( RewritePatternSet * patterns)

Definition at line 72 of file TosaToMLProgram.cpp.

References mlir::patterns.

◆ populateTosaToSCFConversionPatterns()

void mlir::tosa::populateTosaToSCFConversionPatterns ( RewritePatternSet * patterns)

Definition at line 174 of file TosaToSCF.cpp.

References mlir::patterns.

◆ populateTosaToTensorConversionPatterns()

void mlir::tosa::populateTosaToTensorConversionPatterns ( const TypeConverter & converter,
RewritePatternSet * patterns )

Definition at line 459 of file TosaToTensor.cpp.

References mlir::patterns.

◆ populateTosaTypeConversion()

void mlir::tosa::populateTosaTypeConversion ( TypeConverter & converter)

◆ printVariableOpTypeOrInitialValue()

void mlir::tosa::printVariableOpTypeOrInitialValue ( OpAsmPrinter & p,
Operation * op,
DenseElementsAttr varShapeAttr,
TypeAttr typeAttr,
Attribute initialValueAttr )

◆ registerShardingInterfaceExternalModels()

void mlir::tosa::registerShardingInterfaceExternalModels ( DialectRegistry & registry)

◆ registerTosaAttachTarget()

void mlir::tosa::registerTosaAttachTarget ( )
inline

Definition at line 819 of file Passes.h.

◆ registerTosaAttachTargetPass()

void mlir::tosa::registerTosaAttachTargetPass ( )
inline

Definition at line 826 of file Passes.h.

◆ registerTosaConvertIntegerTypeToSignless()

void mlir::tosa::registerTosaConvertIntegerTypeToSignless ( )
inline

Definition at line 840 of file Passes.h.

◆ registerTosaConvertIntegerTypeToSignlessPass()

void mlir::tosa::registerTosaConvertIntegerTypeToSignlessPass ( )
inline

Definition at line 847 of file Passes.h.

◆ registerTosaInferShapesPass()

void mlir::tosa::registerTosaInferShapesPass ( )
inline

Definition at line 861 of file Passes.h.

◆ registerTosaInferShapesPassPass()

void mlir::tosa::registerTosaInferShapesPassPass ( )
inline

Definition at line 868 of file Passes.h.

◆ registerTosaLayerwiseConstantFoldPass()

void mlir::tosa::registerTosaLayerwiseConstantFoldPass ( )
inline

Definition at line 882 of file Passes.h.

◆ registerTosaLayerwiseConstantFoldPassPass()

void mlir::tosa::registerTosaLayerwiseConstantFoldPassPass ( )
inline

Definition at line 889 of file Passes.h.

◆ registerTosaMakeBroadcastablePass()

void mlir::tosa::registerTosaMakeBroadcastablePass ( )
inline

Definition at line 903 of file Passes.h.

◆ registerTosaMakeBroadcastablePassPass()

void mlir::tosa::registerTosaMakeBroadcastablePassPass ( )
inline

Definition at line 910 of file Passes.h.

◆ registerTosaNarrowI64ToI32Pass()

void mlir::tosa::registerTosaNarrowI64ToI32Pass ( )
inline

Definition at line 924 of file Passes.h.

◆ registerTosaNarrowI64ToI32PassPass()

void mlir::tosa::registerTosaNarrowI64ToI32PassPass ( )
inline

Definition at line 931 of file Passes.h.

◆ registerTosaOptionalDecompositionsPass()

void mlir::tosa::registerTosaOptionalDecompositionsPass ( )
inline

Definition at line 945 of file Passes.h.

◆ registerTosaOptionalDecompositionsPassPass()

void mlir::tosa::registerTosaOptionalDecompositionsPassPass ( )
inline

Definition at line 952 of file Passes.h.

◆ registerTosaOptPasses()

void mlir::tosa::registerTosaOptPasses ( )
inline

Definition at line 1008 of file Passes.h.

Referenced by mlir::registerAllPasses().

◆ registerTosaReduceTransposes()

void mlir::tosa::registerTosaReduceTransposes ( )
inline

Definition at line 966 of file Passes.h.

◆ registerTosaReduceTransposesPass()

void mlir::tosa::registerTosaReduceTransposesPass ( )
inline

Definition at line 973 of file Passes.h.

◆ registerTosaToLinalgPipelines()

void mlir::tosa::registerTosaToLinalgPipelines ( )

Populates TOSA to linalg pipelines Currently, this includes only the "tosa-to-linalg-pipeline".

Definition at line 108 of file TosaToLinalgPass.cpp.

References addTosaToLinalgPasses(), mlir::tosa::TosaValidationOptions::allowInvalidOpDatatypeCombinations, and mlir::tosa::TosaValidationOptions::strictOpSpecAlignment.

Referenced by mlir::registerAllPasses().

◆ registerTosaValidation()

void mlir::tosa::registerTosaValidation ( )
inline

Definition at line 987 of file Passes.h.

◆ registerTosaValidationPass()

void mlir::tosa::registerTosaValidationPass ( )
inline

Definition at line 994 of file Passes.h.

◆ stringifyVersion()

◆ validIntegerRange()

bool mlir::tosa::validIntegerRange ( IntegerType ty,
int64_t value )

Definition at line 50 of file ConversionUtils.cpp.

Variable Documentation

◆ TOSA_LEVEL_EIGHTK

TosaLevel mlir::tosa::TOSA_LEVEL_EIGHTK = {6, 8192, 8192, 256, 31, 6, 64}
staticconstexpr

Definition at line 41 of file TargetEnv.h.

Referenced by mlir::tosa::TargetEnv::getLevel().

◆ TOSA_LEVEL_NONE

TosaLevel mlir::tosa::TOSA_LEVEL_NONE
staticconstexpr
Initial value:
= {32, 2147483647, 2147483647, 2048,
63, 256, 256}

Definition at line 42 of file TargetEnv.h.

Referenced by mlir::tosa::TargetEnv::getLevel().