LLZK
3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Toggle main menu visibility
Loading...
Searching...
No Matches
Verif.h
Go to the documentation of this file.
1
//===-- Verif.h - C API for Verif dialect -------------------------*- 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
// This header declares the C interface for registering and accessing the
11
// Verif dialect. A dialect should be registered with a context to make it
12
// available to users of the context. These users must load the dialect
13
// before using any of its attributes, operations, or types. Parser and pass
14
// manager can load registered dialects automatically.
15
//
16
//===----------------------------------------------------------------------===//
17
18
#ifndef LLZK_C_DIALECT_VERIF_H
19
#define LLZK_C_DIALECT_VERIF_H
20
21
#include "
llzk-c/Support.h
"
22
23
#include <mlir-c/IR.h>
24
#include <mlir-c/Support.h>
25
26
// Include the generated CAPI
27
#include "
llzk/Dialect/Verif/IR/Ops.capi.h.inc
"
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
32
34
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION
(Verif, llzk__verif);
35
39
MLIR_CAPI_EXPORTED
void
llzkVerif_attachInterfaces
(MlirContext context);
40
42
LLZK_DECLARE_OP_BUILD_METHOD
(
43
Verif, ContractOp, MlirIdentifier sym_name, MlirAttribute target, MlirAttribute function_type,
44
MlirAttribute arg_attrs
45
);
46
48
LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD
(
49
Verif, ContractOp, FromTargetIdentifier, MlirIdentifier sym_name, MlirIdentifier target
50
);
51
53
LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD
(
54
Verif, ContractOp, FromTargetAttr, MlirIdentifier sym_name, MlirAttribute target
55
);
56
59
LLZK_DECLARE_OP_BUILD_METHOD
(
60
Verif, IncludeOp, MlirAttribute callee,
MlirValueRange
argOperands, MlirAttribute templateParams
61
);
62
66
LLZK_DECLARE_OP_BUILD_METHOD
(
67
Verif, InvariantOp, MlirStringRef loopName, intptr_t numArgs, MlirType
const
*types,
68
MlirLocation
const
*locs
69
);
70
72
MLIR_CAPI_EXPORTED MlirBlock
llzkVerif_InvariantOpGetBody
(MlirOperation op);
73
74
#ifdef __cplusplus
75
}
76
#endif
77
78
#endif
// LLZK_C_DIALECT_VERIF_H
Ops.capi.h.inc
llzkVerif_attachInterfaces
MLIR_CAPI_EXPORTED void llzkVerif_attachInterfaces(MlirContext context)
Attaches the interfaces defined by the verif dialect to upstream IR elements.
Definition
Verif.cpp:31
llzkVerif_InvariantOpGetBody
MLIR_CAPI_EXPORTED MlirBlock llzkVerif_InvariantOpGetBody(MlirOperation op)
Returns the body of the invariant operation.
Definition
Verif.cpp:122
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Verif, llzk__verif)
Get reference to the LLZK verif dialect.
Support.h
LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD
#define LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD(dialect, op, suffix,...)
Definition
Support.h:33
LLZK_DECLARE_OP_BUILD_METHOD
#define LLZK_DECLARE_OP_BUILD_METHOD(dialect, op,...)
Definition
Support.h:38
MlirValueRange
Representation of an mlir::ValueRange.
Definition
Support.h:47
include
llzk-c
Dialect
Verif.h
Generated by
1.17.0
Copyright 2025 Veridise Inc. under the Apache License v2.0. Copyright 2026 Project LLZK under the Apache License v2.0.