LLZK 2.1.1
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 <memory>
15
16namespace llzk::witgen {
17
18struct WitgenOptions;
19
22std::unique_ptr<mlir::Pass> createLowerComputeToCorePass(const WitgenOptions &options);
23
25std::unique_ptr<mlir::Pass> createCreateWitgenEntryPass(bool emitFullWitness);
26
28void addWitgenPreparePipeline(mlir::OpPassManager &pm, const WitgenOptions &options);
29
30} // namespace llzk::witgen
std::unique_ptr< Pass > createCreateWitgenEntryPass(bool emitFullWitness)
Create the pass that synthesizes the stable llzk-witgen JIT entry wrapper.
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...
Configure one llzk-witgen execution.