picceler
A compiled DSL for image processing, built on MLIR
Loading...
Searching...
No Matches
picceler::ParameterizedFilterPattern< OpTy > Struct Template Reference

Rewrites a filter op whose kernel depends on a single I64 parameter (sharpen's strength, box_blur/gaussian_blur's radius) into a convolution + kernel pair, using staticCalc when the parameter is a compile-time constant and dynamicBuilder otherwise. More...

Inheritance diagram for picceler::ParameterizedFilterPattern< OpTy >:

Public Types

using ParamExtractor = std::function<mlir::Value(typename OpTy::Adaptor &)>
using StaticKernelCalculator = std::function<Result<KernelData>(OpTy, typename OpTy::Adaptor)>
using DynamicKernelBuilder

Public Member Functions

 ParameterizedFilterPattern (mlir::MLIRContext *ctx, ParamExtractor paramExtractor, StaticKernelCalculator staticCalc, DynamicKernelBuilder dynamicBuilder)
mlir::LogicalResult matchAndRewrite (OpTy op, OpTy::Adaptor adaptor, mlir::ConversionPatternRewriter &rewriter) const override

Detailed Description

template<typename OpTy>
struct picceler::ParameterizedFilterPattern< OpTy >

Rewrites a filter op whose kernel depends on a single I64 parameter (sharpen's strength, box_blur/gaussian_blur's radius) into a convolution + kernel pair, using staticCalc when the parameter is a compile-time constant and dynamicBuilder otherwise.

Member Typedef Documentation

◆ DynamicKernelBuilder

template<typename OpTy>
using picceler::ParameterizedFilterPattern< OpTy >::DynamicKernelBuilder
Initial value:
std::function<Result<mlir::Value>(OpTy, typename OpTy::Adaptor,
mlir::ConversionPatternRewriter &, mlir::Location)>

◆ ParamExtractor

template<typename OpTy>
using picceler::ParameterizedFilterPattern< OpTy >::ParamExtractor = std::function<mlir::Value(typename OpTy::Adaptor &)>

◆ StaticKernelCalculator

template<typename OpTy>
using picceler::ParameterizedFilterPattern< OpTy >::StaticKernelCalculator = std::function<Result<KernelData>(OpTy, typename OpTy::Adaptor)>

Constructor & Destructor Documentation

◆ ParameterizedFilterPattern()

template<typename OpTy>
picceler::ParameterizedFilterPattern< OpTy >::ParameterizedFilterPattern ( mlir::MLIRContext * ctx,
ParamExtractor paramExtractor,
StaticKernelCalculator staticCalc,
DynamicKernelBuilder dynamicBuilder )
inline

Member Function Documentation

◆ matchAndRewrite()

template<typename OpTy>
mlir::LogicalResult picceler::ParameterizedFilterPattern< OpTy >::matchAndRewrite ( OpTy op,
OpTy::Adaptor adaptor,
mlir::ConversionPatternRewriter & rewriter ) const
inlineoverride

The documentation for this struct was generated from the following file: