LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
LLZK.cpp
Go to the documentation of this file.
1//===-- LLZK.cpp - LLZK dialect C API implementation ------------*- 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
14
15#include "llzk-c/Dialect/LLZK.h"
16
17#include <mlir/CAPI/Registration.h>
18
19using namespace llzk;
20
21MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(LLZK, llzk, LLZKDialect)
22
23MlirAttribute llzkPublicAttrGet(MlirContext ctx) { return wrap(PublicAttr::get(unwrap(ctx))); }
24
25bool llzkAttributeIsAPublicAttr(MlirAttribute attr) { return llvm::isa<PublicAttr>(unwrap(attr)); }
26
27MlirAttribute llzkLoopBoundsAttrGet(MlirContext ctx, int64_t lower, int64_t upper, int64_t step) {
28 return wrap(LoopBoundsAttr::get(unwrap(ctx), toAPInt(lower), toAPInt(upper), toAPInt(step)));
29}
30
31bool llzkAttributeIsALoopBoundsAttr(MlirAttribute attr) {
32 return llvm::isa<LoopBoundsAttr>(unwrap(attr));
33}
34
35bool llzkOperationIsANonDetOp(MlirOperation op) { return llvm::isa<NonDetOp>(unwrap(op)); }
bool llzkAttributeIsALoopBoundsAttr(MlirAttribute attr)
Definition LLZK.cpp:31
MlirAttribute llzkLoopBoundsAttrGet(MlirContext ctx, int64_t lower, int64_t upper, int64_t step)
Creates a llzk::LoopBoundsAttr.
Definition LLZK.cpp:27
bool llzkAttributeIsAPublicAttr(MlirAttribute attr)
Definition LLZK.cpp:25
bool llzkOperationIsANonDetOp(MlirOperation op)
Definition LLZK.cpp:35
MlirAttribute llzkPublicAttrGet(MlirContext ctx)
Creates a llzk::PublicAttr.
Definition LLZK.cpp:23
llvm::APInt toAPInt(int64_t i)