picceler
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 Cpicceler::ASTNodeAbstract Syntax Tree (AST) node base class
 Cpicceler::AssignmentNodeAST node for assignment statements
 Cpicceler::CallNodeAST node for function calls
 Cpicceler::KernelNodeAST node for kernel definitions
 Cpicceler::ModuleNodeAST node for the entire module
 Cpicceler::NumberNodeAST node for numeric literals
 Cpicceler::StringNodeAST node for string literals
 Cpicceler::VariableNodeAST node for variable references
 Cpicceler::CLIOptionsStruct to hold command-line options for the compiler
 Cpicceler::CompileErrorStruct to hold compilation error information
 Cpicceler::CompilerCompiler class that orchestrates the compilation process
 Cpicceler::ImageAccessHelperHelper 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 };
 Cpicceler::IRPassManagerWrapper around MLIR PassManager to manage and run passes
 Cpicceler::KernelData
 Cpicceler::LexerLexical analyzer for the picceler programming language
 Cpicceler::MLIRGenMLIR code generator that converts AST nodes to MLIR constructs. This offers the initial IR generation from the AST
 Cmlir::OpConversionPattern
 Cpicceler::BrightnessToAffine
 Cpicceler::CropToAffine
 Cpicceler::FilterToConvolutionPattern< OpTy >
 Cpicceler::InvertToAffine
 Cpicceler::LoadImageToCallPattern to lower LoadImageOp to a function call
 Cpicceler::ReadNumberToCall
 Cpicceler::ReadStringToCall
 Cpicceler::RotateToAffine
 Cpicceler::SaveImageToCallPattern to lower SaveImageOp to a function call
 Cpicceler::ShowImageToCallPattern to lower ShowImageOp to a function call
 Cpicceler::StringConstConverter
 Cmlir::OpInterfaceConversionPattern
 Cpicceler::ElementWiseBinaryOpToAffine
 Cpicceler::NeighbourhoodOpsToAffine
 Cmlir::OpRewritePattern
 Cpicceler::KernelToMemref
 Cpicceler::ParserThat converts tokens into an AST
 Cmlir::PassInstrumentation
 Cpicceler::PassLoggerCustom struct to log pass execution using spdlog. This struct implements the PassInstrumentation interface to hook into the pass execution lifecycle
 Cimpl::PiccelerFiltersToConvBase
 Cpicceler::PiccelerFiltersToConvPassA pass that converts high-level image filter operations (like sharpen, blur, edge detect) into convolution operations with constant kernels
 Cimpl::PiccelerKernelToMemrefBase
 Cpicceler::PiccelerKernelToMemrefPassA pass that converts KernelConstOp operations, which represent constant convolution kernels, into MemRef operations that allocate memory for the kernel and store the constant values into it
 Cimpl::PiccelerOpsToFuncCallsBase
 Cpicceler::PiccelerOpsToFuncCallsPassA pass that converts image operations (like load, show, save) into function calls
 Cimpl::PiccelerToAffineBase
 Cpicceler::PiccelerToAffinePassA 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
 Cimpl::PiccelerToLLVMIRBase
 Cpicceler::PiccelerToLLVMIRPassA pass that helps convert last pieces of Picceler IR to LLVM IR
 Cpicceler::TokenRepresents a token produced by the lexer