picceler
Loading...
Searching...
No Matches
picceler Namespace Reference

Namespaces

namespace  utils

Classes

struct  AssignmentNode
 AST node for assignment statements. More...
struct  ASTNode
 Abstract Syntax Tree (AST) node base class. More...
struct  BlurImageToCall
 Pattern to lower BlurOp to a function call. More...
struct  BrightnessToAffine
struct  CallNode
 AST node for function calls. More...
class  CLIOptions
struct  CompileError
class  Compiler
 Compiler class that orchestrates the compilation process. More...
struct  ConvolutionToAffine
struct  FilterToConvolutionPattern
struct  ImageAccessHelper
 Helper 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 };. More...
struct  InvertToAffine
class  IRPassManager
 Wrapper around MLIR PassManager to manage and run passes. More...
struct  KernelData
struct  KernelNode
 AST node for kernel definitions. More...
struct  KernelToMemref
class  Lexer
 Lexical analyzer for the picceler programming language. More...
struct  LoadImageToCall
 Pattern to lower LoadImageOp to a function call. More...
class  MLIRGen
 MLIR code generator that converts AST nodes to MLIR constructs. This offers the initial IR generation from the AST. More...
struct  ModuleNode
 AST node for the entire module. More...
struct  NumberNode
 AST node for numeric literals. More...
class  Parser
 The Parser class that converts tokens into an AST. More...
struct  PassLogger
struct  PiccelerFiltersToConvPass
struct  PiccelerKernelToMemrefPass
struct  PiccelerOpsToFuncCallsPass
struct  PiccelerToAffinePass
struct  PiccelerToLLVMIRPass
struct  RotateToAffine
struct  SaveImageToCall
 Pattern to lower SaveImageOp to a function call. More...
struct  ShowImageToCall
 Pattern to lower ShowImageOp to a function call. More...
struct  StringConstConverter
struct  StringNode
 AST node for string literals. More...
struct  Token
 Represents a token produced by the lexer. More...
struct  VariableNode
 AST node for variable references. More...

Typedefs

template<typename T>
using Result = std::expected<T, CompileError>

Functions

std::ostream & operator<< (std::ostream &os, const Token &token)
 Outputs a token to the given output stream.
std::unique_ptr< mlir::Pass > createPiccelerKernelToMemrefPass ()
std::unique_ptr< mlir::Pass > createPiccelerOpsToFuncCallsPass ()
std::unique_ptr< mlir::Pass > createPiccelerToAffinePass ()
std::unique_ptr< mlir::Pass > createPiccelerToLLVMIRPass ()
std::unique_ptr< mlir::Pass > createPiccelerFiltersToConvPass ()
mlir::FailureOr< KernelDatacalculateSharpenKernel (SharpenOp op, SharpenOpAdaptor adaptor)
mlir::FailureOr< KernelDatacalculateBoxBlurKernel (BoxBlurOp op, BoxBlurOpAdaptor adaptor)
mlir::FailureOr< KernelDatacalculateGaussianKernel (GaussianBlurOp op, GaussianBlurOpAdaptor adaptor)
mlir::FailureOr< KernelDatacalculateEdgeDetectKernel (EdgeDetectOp op, EdgeDetectOpAdaptor adaptor)
mlir::FailureOr< KernelDatacalculateEmbossKernel (EmbossOp op, EmbossOpAdaptor adaptor)
mlir::func::FuncOp ensureRuntimeFunc (mlir::ModuleOp module, mlir::StringRef name, llvm::ArrayRef< mlir::Type > inputs, llvm::ArrayRef< mlir::Type > results, mlir::PatternRewriter &rewriter, mlir::Location loc)
 Ensures that a runtime function is declared in the module. If the function does not exist, it is created.

Typedef Documentation

◆ Result

template<typename T>
using picceler::Result = std::expected<T, CompileError>

Function Documentation

◆ calculateBoxBlurKernel()

mlir::FailureOr< KernelData > picceler::calculateBoxBlurKernel ( BoxBlurOp op,
BoxBlurOpAdaptor adaptor )

◆ calculateEdgeDetectKernel()

mlir::FailureOr< KernelData > picceler::calculateEdgeDetectKernel ( EdgeDetectOp op,
EdgeDetectOpAdaptor adaptor )

◆ calculateEmbossKernel()

mlir::FailureOr< KernelData > picceler::calculateEmbossKernel ( EmbossOp op,
EmbossOpAdaptor adaptor )

◆ calculateGaussianKernel()

mlir::FailureOr< KernelData > picceler::calculateGaussianKernel ( GaussianBlurOp op,
GaussianBlurOpAdaptor adaptor )

◆ calculateSharpenKernel()

mlir::FailureOr< KernelData > picceler::calculateSharpenKernel ( SharpenOp op,
SharpenOpAdaptor adaptor )

◆ createPiccelerFiltersToConvPass()

std::unique_ptr< mlir::Pass > picceler::createPiccelerFiltersToConvPass ( )

◆ createPiccelerKernelToMemrefPass()

std::unique_ptr< mlir::Pass > picceler::createPiccelerKernelToMemrefPass ( )

◆ createPiccelerOpsToFuncCallsPass()

std::unique_ptr< mlir::Pass > picceler::createPiccelerOpsToFuncCallsPass ( )

◆ createPiccelerToAffinePass()

std::unique_ptr< mlir::Pass > picceler::createPiccelerToAffinePass ( )

◆ createPiccelerToLLVMIRPass()

std::unique_ptr< mlir::Pass > picceler::createPiccelerToLLVMIRPass ( )

◆ ensureRuntimeFunc()

mlir::func::FuncOp picceler::ensureRuntimeFunc ( mlir::ModuleOp module,
mlir::StringRef name,
llvm::ArrayRef< mlir::Type > inputs,
llvm::ArrayRef< mlir::Type > results,
mlir::PatternRewriter & rewriter,
mlir::Location loc )

Ensures that a runtime function is declared in the module. If the function does not exist, it is created.

Parameters
moduleThe MLIR module to check.
nameThe name of the function.
inputsThe input types of the function.
resultsThe result types of the function.
rewriterThe pattern rewriter to use for creating the function.
locThe location to use for the function.
Returns
The function operation.

◆ operator<<()

std::ostream & picceler::operator<< ( std::ostream & os,
const Token & token )

Outputs a token to the given output stream.

Parameters
osThe output stream.
tokenThe token to output.
Returns
The output stream.