13#ifndef MLIR_CONVERSION_TOSATOLINALG_TOSATOLINALG_H
14#define MLIR_CONVERSION_TOSATOLINALG_TOSATOLINALG_H
20#include "llvm/ADT/DenseMap.h"
26#define GEN_PASS_DECL_TOSATOLINALG
27#define GEN_PASS_DECL_TOSATOLINALGNAMED
28#include "mlir/Conversion/Passes.h.inc"
34 const TosaToLinalgNamedOptions &
options = TosaToLinalgNamedOptions());
41 OpPassManager &pm,
const TosaToLinalgOptions &
options,
42 const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions =
43 TosaToLinalgNamedOptions(),
45 std::optional<tosa::TosaValidationOptions> validationOptions =
46 tosa::TosaValidationOptions{
false,
false},
47 std::optional<TosaAttachTargetOptions> attachTargetOptions = std::nullopt);
56 const TosaToLinalgOptions &
options = TosaToLinalgOptions());
61 const TosaToLinalgNamedOptions &
options);
65std::optional<linalg::ElementwiseKind>
81std::pair<OpFoldResult, Value>
static llvm::ManagedStatic< PassManagerOptions > options
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around...
A special type of RewriterBase that coordinates the application of a rewrite pattern on the current I...
This class provides an abstraction over the different types of ranges over Values.
llvm::DenseMap< int64_t, Value > IndexPool
Caches the arith.constant index values created for a set of dimension indices so that broadcasting he...
std::unique_ptr< Pass > createTosaToLinalgNamed(const TosaToLinalgNamedOptions &options=TosaToLinalgNamedOptions())
void addTosaToLinalgPasses(OpPassManager &pm, const TosaToLinalgOptions &options, const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions=TosaToLinalgNamedOptions(), std::optional< tosa::TosaValidationOptions > validationOptions=tosa::TosaValidationOptions{false, false}, std::optional< TosaAttachTargetOptions > attachTargetOptions=std::nullopt)
Populates passes to convert from TOSA to Linalg.
std::pair< OpFoldResult, Value > computeTargetSize(PatternRewriter &rewriter, Location loc, IndexPool &indexPool, ValueRange operands, int64_t dim)
Compute the broadcasted runtime size of dimension dim of an elementwise operation whose operands all ...
std::unique_ptr< Pass > createTosaToLinalg(const TosaToLinalgOptions &options=TosaToLinalgOptions())
void populateTosaToLinalgConversionPatterns(const TypeConverter &converter, RewritePatternSet *patterns, const TosaToLinalgOptions &options=TosaToLinalgOptions())
Populates conversion passes from TOSA dialect to Linalg dialect.
void registerTosaToLinalgPipelines()
Populates TOSA to linalg pipelines Currently, this includes only the "tosa-to-linalg-pipeline".
void populateTosaToLinalgNamedConversionPatterns(const TypeConverter &converter, RewritePatternSet *patterns, const TosaToLinalgNamedOptions &options)
Populates conversion passes from TOSA dialect to Linalg named operations.
std::optional< linalg::ElementwiseKind > isConvertibleToLinalgElementwise(Operation *op)
Returns the linalg.elementwise kind that the TosaToLinalgNamed conversion lowers op to,...
Include the generated interface declarations.