|
picceler
A compiled DSL for image processing, built on MLIR
|
#include "passes.h"#include "mlir/Dialect/Arith/IR/Arith.h"#include "mlir/Dialect/Affine/IR/AffineOps.h"#include "mlir/Dialect/Func/IR/FuncOps.h"#include "mlir/Dialect/MemRef/IR/MemRef.h"#include "mlir/Dialect/Math/IR/Math.h"#include "mlir/Dialect/SCF/IR/SCF.h"#include "mlir/Transforms/DialectConversion.h"#include "mlir/IR/Builders.h"#include "mlir/IR/Matchers.h"#include "mlir/Pass/Pass.h"#include "mlir/IR/BuiltinOps.h"#include "spdlog/spdlog.h"#include "ops.h"#include "types.h"#include <error.h>#include <expected>#include <format>#include <numbers>#include "piccelerPasses.h.inc"Classes | |
| class | picceler::KernelData |
| struct | picceler::FixedKernelFilterPattern< 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. More... | |
| struct | picceler::PiccelerFiltersToConvPass |
| A pass that converts high-level image filter operations (like sharpen, blur, edge detect) into convolution operations with constant kernels. More... | |
Namespaces | |
| namespace | picceler |
Macros | |
| #define | GEN_PASS_DEF_PICCELERFILTERSTOCONV |
Functions | |
| Result< KernelData > | picceler::calculateSharpenKernel (SharpenOp op, SharpenOpAdaptor adaptor) |
| Result< KernelData > | picceler::calculateBoxBlurKernel (BoxBlurOp op, BoxBlurOpAdaptor adaptor) |
| Result< KernelData > | picceler::calculateGaussianKernel (GaussianBlurOp op, GaussianBlurOpAdaptor adaptor) |
| Result< KernelData > | picceler::calculateEdgeDetectKernel (EdgeDetectOp op, EdgeDetectOpAdaptor adaptor) |
| Result< KernelData > | picceler::calculateEmbossKernel (EmbossOp op, EmbossOpAdaptor adaptor) |
| void | picceler::emitRuntimeRadiusBoundsCheck (mlir::ConversionPatternRewriter &rewriter, mlir::Location loc, mlir::Value radius) |
| Result< mlir::Value > | picceler::buildBoxBlurKernelDynamic (BoxBlurOp op, BoxBlurOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter, mlir::Location loc) |
| Result< mlir::Value > | picceler::buildGaussianKernelDynamic (GaussianBlurOp op, GaussianBlurOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter, mlir::Location loc) |
| Result< mlir::Value > | picceler::buildSharpenKernelDynamic (SharpenOp op, SharpenOpAdaptor adaptor, mlir::ConversionPatternRewriter &rewriter, mlir::Location loc) |
The following functions create instances of the various passes used in the compilation process. | |
Each function corresponds to a specific pass that transforms the IR in a particular way. | |
| std::unique_ptr< mlir::Pass > | picceler::createPiccelerFiltersToConvPass () |
| #define GEN_PASS_DEF_PICCELERFILTERSTOCONV |