LLZK 0.1.0
Veridise's ZK Language IR
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> createComputeConstrainToProductPass();
22
23std::unique_ptr<mlir::Pass> createFlatteningPass();
24
25std::unique_ptr<mlir::Pass> createRedundantReadAndWriteEliminationPass();
26
27std::unique_ptr<mlir::Pass> createRedundantOperationEliminationPass();
28
29std::unique_ptr<mlir::Pass> createUnusedDeclarationEliminationPass();
30
31std::unique_ptr<mlir::Pass> createArrayToScalarPass();
32
33std::unique_ptr<mlir::Pass> createPolyLoweringPass();
34
35std::unique_ptr<mlir::Pass> createPolyLoweringPass(unsigned maxDegree);
36
37std::unique_ptr<mlir::Pass> createInlineStructsPass();
38
39std::unique_ptr<mlir::Pass> createR1CSLoweringPass();
40
41#if LLZK_WITH_PCL
42std::unique_ptr<mlir::Pass> createPCLLoweringPass();
43#endif // LLZK_WITH_PCL
44
46
47void registerInliningExtensions(mlir::DialectRegistry &registry);
48
49#define GEN_PASS_REGISTRATION
51
52}; // 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< mlir::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()
void registerInliningExtensions(DialectRegistry &registry)