LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
LLZKTransformationPasses.h
Go to the documentation of this file.
1//===-- LLZKTransformationPasses.h ------------------------------*- C++ -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2025 Veridise Inc.
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#pragma once
11
12#include "llzk/Config/Config.h"
13#include "llzk/Pass/PassBase.h"
14
15namespace llzk {
16
17void addRemoveUnnecessaryOpsAndDefsPipeline(mlir::OpPassManager &pm);
18
19std::unique_ptr<mlir::Pass> createNoOverwritesPass();
20
21std::unique_ptr<mlir::Pass> createFuseProductLoopsPass();
22
23std::unique_ptr<mlir::Pass> createComputeConstrainToProductPass();
24
25std::unique_ptr<mlir::Pass> createFlatteningPass();
26
27std::unique_ptr<mlir::Pass> createRedundantReadAndWriteEliminationPass();
28
29std::unique_ptr<mlir::Pass> createRedundantOperationEliminationPass();
30
31std::unique_ptr<mlir::Pass> createUnusedDeclarationEliminationPass();
32
33std::unique_ptr<mlir::Pass> createArrayToScalarPass();
34
35std::unique_ptr<mlir::Pass> createPolyLoweringPass();
36
37std::unique_ptr<mlir::Pass> createPolyLoweringPass(unsigned maxDegree);
38
39std::unique_ptr<mlir::Pass> createInlineStructsPass();
40
42
43void registerInliningExtensions(mlir::DialectRegistry &registry);
44
45#define GEN_PASS_REGISTRATION
47
48}; // namespace llzk
std::unique_ptr< mlir::Pass > createArrayToScalarPass()
std::unique_ptr< mlir::Pass > createFlatteningPass()
std::unique_ptr< mlir::Pass > createRedundantOperationEliminationPass()
void registerTransformationPassPipelines()
std::unique_ptr< Pass > createComputeConstrainToProductPass()
std::unique_ptr< mlir::Pass > createRedundantReadAndWriteEliminationPass()
std::unique_ptr< mlir::Pass > createUnusedDeclarationEliminationPass()
std::unique_ptr< mlir::Pass > createPolyLoweringPass()
void addRemoveUnnecessaryOpsAndDefsPipeline(OpPassManager &pm)
std::unique_ptr< mlir::Pass > createInlineStructsPass()
std::unique_ptr< mlir::Pass > createNoOverwritesPass()
std::unique_ptr< mlir::Pass > createFuseProductLoopsPass()
void registerInliningExtensions(DialectRegistry &registry)