LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
DialectRegistration.cpp
Go to the documentation of this file.
1//===-- DialectRegistration.cpp ---------------------------------*- 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//===----------------------------------------------------------------------===//
13//===----------------------------------------------------------------------===//
14
16
17#include "r1cs/DialectRegistration.h"
18#include "smt/DialectRegistration.h"
19#include "zklean/DialectRegistration.h"
20
21#include "llzk/Config/Config.h"
22
23#if LLZK_WITH_PCL
24#include "pcl/DialectRegistration.h"
25#endif
26
28
29#include <mlir-c/IR.h>
30
31#include <mlir/CAPI/IR.h>
32#include <mlir/CAPI/Wrap.h>
33
34void llzkRegisterCoreDialects(MlirDialectRegistry registry) {
35 llzk::registerDialects(*unwrap(registry));
36}
37
38void llzkRegisterCorePasses(MlirDialectRegistry registry) {
39 llzk::registerPasses(*unwrap(registry));
40}
41
42void llzkRegisterPCLDialects(MlirDialectRegistry registry) {
43#if LLZK_WITH_PCL
44 pcl::registerDialects(*unwrap(registry));
45#else
46 (void)registry;
47#endif
48}
49
50void llzkRegisterPCLPasses(MlirDialectRegistry registry) {
51#if LLZK_WITH_PCL
52 pcl::registerPasses(*unwrap(registry));
53#else
54 (void)registry;
55#endif
56}
57
58void llzkRegisterR1CSDialects(MlirDialectRegistry registry) {
59 r1cs::registerDialects(*unwrap(registry));
60}
61
62void llzkRegisterR1CSPasses(MlirDialectRegistry registry) {
63 r1cs::registerPasses(*unwrap(registry));
64}
65
66void llzkRegisterSMTDialects(MlirDialectRegistry registry) {
67 llzk::smt::registerDialects(*unwrap(registry));
68}
69
70void llzkRegisterSMTPasses(MlirDialectRegistry registry) {
71 llzk::smt::registerPasses(*unwrap(registry));
72}
73
74void llzkRegisterZKLeanDialects(MlirDialectRegistry registry) {
75 zklean::registerDialects(*unwrap(registry));
76}
77
78void llzkRegisterZKLeanPasses(MlirDialectRegistry registry) {
79 zklean::registerPasses(*unwrap(registry));
80}
void llzkRegisterSMTPasses(MlirDialectRegistry registry)
Registers SMT conversion passes.
void llzkRegisterZKLeanPasses(MlirDialectRegistry registry)
Registers ZKLean passes.
void llzkRegisterR1CSPasses(MlirDialectRegistry registry)
Registers R1CS passes.
void llzkRegisterZKLeanDialects(MlirDialectRegistry registry)
Registers ZKLean dialects in the given registry.
void llzkRegisterCoreDialects(MlirDialectRegistry registry)
Registers core LLZK dialects in the given registry.
void llzkRegisterSMTDialects(MlirDialectRegistry registry)
Registers the MLIR smt and LLZK smt_info metadata dialects in the given registry.
void llzkRegisterPCLPasses(MlirDialectRegistry registry)
Registers PCL passes.
void llzkRegisterR1CSDialects(MlirDialectRegistry registry)
Registers R1CS dialects in the given registry.
void llzkRegisterCorePasses(MlirDialectRegistry registry)
Registers core LLZK passes.
void llzkRegisterPCLDialects(MlirDialectRegistry registry)
Registers PCL dialects in the given registry.
Declares dialect and pass registration functions for core LLZK dialects and backends.
Declares dialect and pass registration functions for core LLZK dialects.
void registerDialects(mlir::DialectRegistry &registry)
Register core LLZK dialects, the MLIR arith, scf, and smt dialects, and verification extensions in re...
void registerPasses(mlir::DialectRegistry &registry)
Register LLZK analysis, validation, and transformation passes and pipelines, SMT conversion passes,...