picceler
A compiled DSL for image processing, built on MLIR
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 Npicceler
 CAssignmentNodeAST node for assignment statements
 CASTNodeAbstract Syntax Tree (AST) node base class
 CBinaryOpNodeAST node for binary operations (arithmetic and relational)
 CCallNodeAST node for function calls
 CChainedBrightnessPattern
 CChainedInvertPattern
 CChainRotatePattern
 CCLIOptionsStruct to hold command-line options for the compiler
 CCombineNestedCropsCanonicalization pattern for the CropOp that combines nested crop operations into a single crop operation. only applicable when both crop operations have constant integer coordinates and dimensions
 CCompileErrorStruct to hold compilation error information
 CCompilerCompiler class that orchestrates the compilation process
 CCropToAffine
 CElementWiseBinaryOpToAffine
 CElementWiseUnaryOpToAffine
 CFixedKernelFilterPattern
 CForNodeAST node for "for" statements
 CFunctionNodeAST node for function definitions
 CGenericTypeUpdatePatternA generic pattern that updates the types of operations based on a provided type converter. Used in KernelToMemref and OpsToFuncCalls passes to ensure that operations have the correct types after type conversion
 CIdentityConvolutionPattern
 CIfNodeAST node for if conditional statements
 CImageAccessHelperHelper class to generate LLVM IR for accessing fields of the Image struct via an opaque pointer. Assumes the following C++ struct layout: struct Image { uint32_t _width; // Offset 0 uint32_t _height; // Offset 4 unsigned char *_data; // Offset 8 };
 CIRPassManagerWrapper around MLIR PassManager to manage and run passes
 CKernelData
 CKernelNodeAST node for kernel definitions
 CKernelToMemref
 CLexerLexical analyzer for the picceler programming language
 CLoadImageToCall
 CLocationStruct to hold location information
 CMLIRGenMLIR code generator that converts AST nodes to MLIR constructs. This offers the initial IR generation from the AST
 CModuleNodeAST node for the entire module
 CNeighbourhoodOpsToAffine
 CNumberNodeAST node for numeric literals
 CParameterizedFilterPatternRewrites 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
 CParserThat converts tokens into an AST
 CPassLoggerCustom struct to log pass execution using spdlog. This struct implements the PassInstrumentation interface to hook into the pass execution lifecycle
 CPiccelerAddProfilingPassA pass that wraps every Picceler compute/IO op with piccelerTraceBegin/piccelerTraceEnd runtime calls. Excludes StringConstOp (instrumentation itself creates these) and ShowImageOp/ ReadNumberOp/ReadStringOp (block on a window/stdin, not compute – one call would swallow every real op's time into invisibility on the timeline), PrintOp (times stdout buffering, not compute), and KernelConstOp (sub-microsecond next to any real op, just adds a row)
 CPiccelerFiltersToConvPassA pass that converts high-level image filter operations (like sharpen, blur, edge detect) into convolution operations with constant kernels
 CPiccelerKernelToMemrefPass
 CPiccelerOpsToFuncCallsPassA pass that converts image operations (like load, show, save) into function calls
 CPiccelerToAffinePassA pass that converts Picceler operations to the Affine dialect. This is the crucial step where we lower from our high-level image processing operations to a more explicit representation that can be further lowered to LLVM IR. Each Picceler operation is matched and rewritten into one or more Affine loops that perform the equivalent computation. This pass also handles type conversions and ensures that necessary runtime functions (like piccelerCreateImage) are declared
 CPiccelerToLLVMIRPassA pass that helps convert last pieces of Picceler IR to LLVM IR
 CPrintToCalls
 CReadNumberToCall
 CReadStringToCall
 CRemoveInvertPattern
 CReturnNodeAST node for "return" statements
 CRotateToAffine
 CSameOperandPatternCanonicalization pattern for the BlendOp that replaces blend(img, img, weight) with img if both input images are the same
 CSaveImageToCallPattern to lower SaveImageOp to a function call
 CShowImageToCallPattern to lower ShowImageOp to a function call
 CStringConstConverter
 CStringNodeAST node for string literals
 CTokenRepresents a token produced by the lexer
 CVariableNodeAST node for variable references