LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
WitgenLowering.h
Go to the documentation of this file.
1//===-- WitgenLowering.h ---------------------------------------*- C++ -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2026 Project LLZK
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#pragma once
11
12#include <mlir/Pass/Pass.h>
13
14#include <cstdint>
15#include <memory>
16
17namespace llzk::witgen {
18
19struct WitgenOptions;
20enum class OutputScope : std::uint8_t;
21
24std::unique_ptr<mlir::Pass> createLowerComputeToCorePass(const WitgenOptions &options);
25
27std::unique_ptr<mlir::Pass> createCreateWitgenEntryPass(OutputScope outputScope);
28
30void addWitgenPreparePipeline(mlir::OpPassManager &pm, const WitgenOptions &options);
31
32} // namespace llzk::witgen
OutputScope
Select the JSON scope emitted by llzk-witgen.
void addWitgenPreparePipeline(OpPassManager &pm, const WitgenOptions &)
std::unique_ptr< Pass > createLowerComputeToCorePass(const WitgenOptions &options)
Create the pass that lowers supported LLZK compute IR into core MLIR dialects suitable for LLVM lower...
std::unique_ptr< Pass > createCreateWitgenEntryPass(OutputScope outputScope)
Create the pass that synthesizes the stable llzk-witgen JIT entry wrapper.
Configure one llzk-witgen execution.