LLZK 0.1.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"
15
16#include <llvm/ADT/APInt.h>
17#include <llvm/Support/CommandLine.h>
18
19namespace llzk {
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
41std::unique_ptr<mlir::Pass> createR1CSLoweringPass();
42
43#if LLZK_WITH_PCL
44std::unique_ptr<mlir::Pass> createPCLLoweringPass();
45#endif // LLZK_WITH_PCL
46
48
49void registerInliningExtensions(mlir::DialectRegistry &registry);
50
51#define GEN_PASS_REGISTRATION
53
54}; // 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()
std::unique_ptr< mlir::Pass > createInlineStructsPass()
std::unique_ptr< mlir::Pass > createR1CSLoweringPass()
std::unique_ptr< mlir::Pass > createFuseProductLoopsPass()
void registerInliningExtensions(DialectRegistry &registry)